欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA 中集合类的关系

程序员文章站 2022-06-10 23:44:58
...

##JAVA 中集合类的关系
JAVA 中集合类的关系

数组于集合的区别:
1,数组是固定长度的;集合是可变长度的
2,数组可以存储基础数据类型,也可以存储引用数据类型;集合只能存储引用数据类型
3,数组存储的元素必须是同一数据类型;集合存储的对象可以是不同数据类型

Collection:
–List:有序(存入取出顺序一致),元素都有索引,元素可以重复
–Set:无序(存入取出顺序可能不一致),不可能存储重复元素。必须保证元素唯一行

将集合变成数组:
toArrary();

TreeSet:
用于对set集合进行元素的指定顺序排序,排序需要依据元素自身具备的比较性
TreeSet集合排序有两种方式,Comparable和Comparator区别:
1:让元素自身具备比较性,需要袁术对象实现Comparable接口,覆盖comparaTo方法。
2:让集合自身具备比较性,需要定义一个实现了Comparator接口的比较器,并覆盖Compara方法,并将该对象作为实际参数传递给TreeSet集合的构造函数。

Map:
–Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。
–HashMap:底层是哈希表数据结构,是线程不同步的,可以存储null键,null值。替代了Hashtable
–TreeMap:底层是二叉树结构,可以对Map集合中的键值进行指定顺序的排序。

map集合存储和collection有着很大的不同:
collection一次存一个元素;map一次存一对元素。
collection是单列集合;map是双列集合。
map中的存储的一对元素:一个是键,一个是值,键与值之间有对应关系

把map集合合并转换成set的方法:
Set keySet();
Set entrySet();
取出map集合中所有元素的方式一:keySet()方法。

Set keyset = map.keyset();
Iterator it = keySet.iterator();
while(it.hasNext()){
        object key = it.next();
        object value = map.get(key);
        System.out.println(key+":"+value);
}

取出map集合中所有元素的方式二:entrySet()方法。

Set entrySet = map.entrySet ();
Iterator it = entrySet .iterator();
while(it.hasNext()){
        Map.Entry me = (map.Entry)it.next();
        System.out.println(me.getKey()+":::"+me.getValue());
}

使用集合的技巧:
看到Array就是数组结构,有角标,查询速度很快。
看到Link就是链表结构:增加速度快,而且有特有方法。addFirst;addLast;removeFirst();
removeLast();getFirst();getLast();
看到hash();就要想到唯一性,就要想到存入到该结构的中的元素必须覆盖hashCode,equals方法。

LinkedHashSet,LinkedHashMap:这两个集合可以保证哈希表有存入顺序和取出顺序一致,保证哈希表有序。

存储一个元素时就用Collecion,当存储对象之前存在着映射关系时,就使用Map集合。保证唯一,就用Set。不保证唯一,就用List。