java常用集合类

时间:2021-02-22 17:02:30

·Java常用集合关系概览:

java常用集合类

·集合框架的由来:

因为每个容器对象的自身的数据结构不同,所以对它们进行单独的描述和对象封装,并不断的向上抽取共性内容,这样就形成了集合框架。

·含义:

集合就是一个容器,用来存储对象、长度可变。

·理解:

其实火车就是一个容器,火车上面的每一位顾客都是单独封装了功能的对象,因为火车上面的乘客数量由于乘坐区间的不同每个时间段都在变化,所以长度是可变的。

·常用方法:

1、增加:

add()增加一个元素

addAll()增加多个元素

2、删除:

remove()删除一个元素,返回boolean类型,用equals方法进行判断,看是否有符合要求的元素,删除成功则会改变集合长度。

removeAll()删除全部。

clear()清空容器。

3、判断

contains()是否包含

isEmpty()集合是否为空

Size()集合长度

4、取

retainAll()取交集

·详细介绍每个集合类:

1、list:有序列表(存储顺序是一致的)该子系统元素中有索引或角标,可以存储重复的元素。

常用方法:

1)添加:List.add(1,"abc");//在角标1位置添加一个值为“abc”的元素。

2)删除:Object obj=list.remove(2);//删除角标为2处的元素。

3)查询:Object obj=list.get(1);获取指定 角标上的元素并返回。

4)修改:Object obj=list.set(1,"bcd");

下层结构:

1)ArrayList:底层是数组数据结构,不同步,查询快,增删慢。

2)LinkedList:底层是链表数据结构,不同步,查询快,增删慢。

3)Vector:底层是数组数据结构,同步,线程安全,效率低。

2、set:无序、不能存储重复的元素。

下层结构:

1)HashSet:底层是哈希表数据结构,无序,能保证元素的唯一性。(通过hashCode和equals两个方法来保证唯一性的)

·LinkHashSet:以元素的插入顺序来维护集合的连接表,允许以插入的顺序的集合中迭代。

2)TreeSet:用于给set集合中元素按照规定的顺序进行排序,低层是二叉树结构,线程是不同步的。(默认是自然排序方式)

3、Map:是结合框架中的顶层,存储键值对,键是唯一的。(如果存在键重复,新值覆盖旧值)

常用方法:

1)增加:put();putAll();

2)删除:clear();Remove(key);

3)判断:containKey();containValue();

4)获取:get(Objcet key);Size();Values();

下层结构:

1)HashMap:低层是哈希表数据结构,该集合是不同步的,允许使用null键和null值

·LinkHashMap:保证按照插入的顺序进行读取。

2)HashTable:该集合是同步,线程安全的,不允许出现null

3)TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序。

4、Iterator:个人理解,在这里它是提供对集合的遍历。


·Collections和Collection的区别:

1)Colleciton是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,为各种具体的集合提供了最大化的统一操作方式。

2)Collecitons是一个包装类,它包含各种有关集合操作的静态多态方法。它不可实例化,就像一个工具类。比如使用集合的ArrayList,完全可以使用Collections这个包装类将其转换成线程安全的。


·集合使用的细节问题:

1、直接存储基本类型的值也是可以的,因为jdk1.5之后有了自动装箱,会将基本数据类型转成对象。

2、集合对象中存储的其实是对象元素的引用。