Java-集合的总结
标签:thistostringtabprimetreeset比较nbsp不同的table
Collection:接口
只有通过Collection接口中toString()进行重写,才能够System.out.print(coll)显示Collection集合中元素
|—–Set:元素无序,不可重复的集合
|—hashSet(主要实现类) +LinkedHashSet(添加顺序遍历集合中元素)+TreeSet
Set 使用的方法基本上Collection接口下定义;
无序:元素底层存储的位置无序的,不重复性:添加相同元素无法添加进去
HashSet(自定义类的重复性重写 hashCode和equals方法):原理:向Set集合中添加元素,首先hashCode方法计算hash值,决定此对象存取的位置
在此位置有对象,在比较equals方法—-注意:重写HashCode方法:对象属性值一样保证HashCode一样,对象属性值不一样保证HashCode不一样,不要相同hashcode值但是有不同的属性值。
Treeset:(对加入元素进行排序处理)存储对象按照ComparaTo方法进行排序
1.TreeSet添加元素属于同一个类型,HashSet属于不同类型
2.两种排序: 1.自然排序 自定义类实现的是 Comparable 接口 重写ComparaTo(按照某种属性排序,属性相同按照其他属性相同) +hashCode+equals方法
2.定制排序:1.创建一个Comparator接口的对象(采用匿名内部类方法) 2.在此对象中重写Compare的方法在此compare方法指明按照某个属性进行排序,3.将对象作为形参 传入TreeSet构造器中。
要求重写 comparaTo 和Compare方法 与equals和HashCode方法表持一致—hashCode和equals用于对元素的储存
|——–List:元素有序,可重复:相当于动态的数组
|—-ArrayList(主要的实现类) + LinkedList(适用于频繁的插入和删除)
对于Collection的contains()方法判断依据 元素所在类的equals方法,如果元素使用自定义类的 重写自定义类中equals方法
Map 接口:具有映射关系 存放的键-值对
Key 使用set存储,不能重复;value用Collection存放,key-value 对构成entry,entry(Map.entrySet)使用Set存放
|—HashMap:线程不安全存放null 值
|—HashTable;线程安全的
|—Properties处理属性文件 ConcurrentHashMap:CAS的积极锁的操作
|—-TreeMap:按照可以所在类指定属性排序 Key必须要是同一个类型
Collections是集合的工作类,大部分static 的方法
1 package com.testCollection;
2
3 public class Empolyee implements Comparable{
4
5 private String name ;
6 private Integer age;
7 private MyData birthday;
8 public String getName() {