java程序员修炼之道之集合框架

容器:

1,概念:javaAPI所提供的一系列类的实例,在用于在程序中存放对象。


2,容器的概念图:



3java集合框架包含的内容

集合框架都包含三大块内容:对外的接口,接口的实现,和对集合运算的算法。

①:对外的接口:在上面的容器概念图中,紫色的区域表示的是集合框架的对外接

口。例如:collectionsetlistmap

②:接口的实现:在上面的容器概念图中,黄色的区域表示的是集合框架的实现接

口,例如:HashMapHashSet等。

③:集合运算的算法:在一个实现了某个集合框架中的接口的对象身上完成某种用

用的计算方法,例如查找,排序等。详细查找Jdk帮助文档。


4,集合框架的区别:

从上图我们可以看出,集合框架共有两大类的接口:collectionMap

其中collection接口下又有两个子接口:setlist。所以我们通常说java集合框架共有

三大类接口,分别是setlist,和Map

共同点:都是集合框架的接口,都可以用来存储对象。

不同点:

①:collection接口存储一组不唯一(也就是允许重复),无序的对象。

②:set接口继承自collection接口,存储一组唯一(也就是不允许重复)、无序的

对象。

③:List接口继承自collection接口,存储一组不唯一(可以重复),有序(以元素

插入的次序来放置元素,不会重新排列)的对象。

④:Map接口存储一组成对的键----值对象。提供key---->value的映射关系。Map

中的key不要求有序,不允许重复。Value同样不要求有序,也允许重复。

5list集合

List集合允许有序和重复的对象。

List是按照插入的顺序来放置元素。

List的常用类有ArrayListLinkedList

①:ArrayList对数组进行了封装,实现了长度可变的数组。在内存中分配连续的

空间,优点就在于遍历元素和随机访问的效率高!

publicstatic voidmain(String[] args) {

Dogouou=newDog("欧欧","黑狗");

Doghaha=newDog("哈哈","黄狗");

Listlist=newArrayList();

list.add(ouou);

list.add(haha);

System.out.println(list.size());

//遍历

for(int i = 0;i < list.size(); i++) {

System.out.println(((Dog)list.get(i)).getName());

}

System.out.println("删除");

list.remove(0);

for(int i = 0;i < list.size(); i++) {

System.out.println(((Dog)list.get(i)).getName());

}

}

注意,List的常用方法get(intindex)是返回指定索引处位置的元素。返回

值是Object类型。在使用钱需要进行强制转换。

②:LinkedList:采用的是链表的存储方式。优点在于插入,删除元素时效率比较

高,他提供了addFirst();addLast();removeFirst();removeLast();等方法,可以在

LinkedList首部或者结尾的地方进行删除和添加,所以这些方法使得LinkedList

以被用作堆栈(stack)或者队列(quece);

LinkedList的主要方法:

addFirst(Objo):向列表的首部添加元素。

.........

③:VectorArrayList的异同点:

相同点:也是表示可变长度数组的集合类。

不同点:Vector的执行效率低于ArrayList,因为Vector是线程安全的,而

ArrayList注重速度,非线程安全。

当数组长度需要增长时,Vector默认是增长数组长度的一倍,而

ArrayList只增长该数组长度的50%。有利于节省空间。



6Map:专门来处理键值对映射关系数据。

publicstatic voidmain(String[] args) {

Mapmap=newHashMap<Object,Object>();

map.put("CN","中国");

map.put("USA","美国");

System.out.println(map.get("CN"));;

}

Map:的常用方法

Put(Objectkey,Object value):以键值对的方式进行存储

Get(Objectkey):根据键值来返回value值。如果键值不存在,返回null

ketSet();返回键的集合。

publicstatic voidmain(String[] args) {

Mapmap = newHashMap<Object,Object>();

map.put("cn","中国");

map.put("usa","美国");

Scannerinput = newScanner(System.in);

System.out.print("请输入国家名称:");

StringcountryName= input.next();

for(int i = 0;i < map.size(); i++) {

System.out.println(map.get(countryName));

}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值