什么是汇合类?
汇合类寄存于java.util包中。汇合类寄存的都是对象的援用,而非对象自身,出于表白上的便当,咱们称汇合中的对象就是指汇合中对象的援用。
汇合类型次要有:
map(映射):
其次要实现类有HashMap、TreeMap;
Map对值没有唯一性要求,对健要求惟一,如果退出已有的健,原有的值对象将被笼罩;
Hashtable基于线程平安,效率低,古老,
HashMap基于非线程平安,效率高。
Collection:
collection是最常见的汇合的下级接口。
继承自collection的罕用接口有List,Set,都是单列的汇合。
set(集):
1)Set实现的根底是Map(HashMap);
2)次要实现类有HashSet、TreeSet;
HashSet(),调用对象的hashCode()办法,取得哈希码,而后再汇合中计算寄存对象的地位。
TreeSet(),继承ShortedSet接口,可能对汇合中对象排序。
3)Set中的元素是不能反复的,如果应用add(Object obj)办法增加曾经存在的对象,则会笼罩后面的对象;
public class SetTest { public static void main(String[] args) { Set set=new HashSet(); //增加数据 set.add("abc"); set.add("cba"); set.add("abc");//成心反复 set.add(123); set.add(true); System.out.println("汇合元素个数:"+set.size()); //遍历出汇合中每一个元素 Iterator it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
【通过java的equals()办法判断。如果有非凡需要须重载equals()办法。】
list(列表):
次要实现类:
LinkedList:实现了链表构造,底层双向链表,查问慢,增删快;
ArrayList:可代表大小可变的数组;
底层是数组实现,线程不平安,效率高,查问比拟高,增删效率低;
List和Set的个性和区别:
1)首先list和set都是单列汇合;
2)list外面的元素是有序的可反复的;
3)set汇合外面的元素是无序的不可反复的;
4)list汇合能够依据下标获取对应的元素,而set则只能遍历全副汇合能力获取对应的元素;