Eclipse
-
•Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。
-
•Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。
-
•List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。
-
Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。
List 接口
list中可以添加相同的对象,比如可以将Student类型的ss添加两边
使用list类一共有三种方法
1.Object[] aa=list.toArray();
2.list.get() 返回值是Object类型的所以在这里要类型转换
3.Iteraor迭代器
Irerator ite=list.iterator();while(ite.hasNext()){Object oo=ite.next();}
Set接口
Set接口中不可以放置相同的对象
在向Set添加对象的时候有两步验证
1.验证对象是否相等,这步就将list中的那种情况给排除了.
2.通过hashcode()--
函数的名字都是同伙哈希编码来存储的,通过hashcode就可以得到函数的名字,也就可以看出是否有相同的函数--和equals()两个函数,如果你不重写的话,仅仅是验证了名字和对象
•HashSet和TreeSet是Set的实现
(
-
返回 set 的哈希码值。一个 set 的哈希码定义为此 set 中所有元素的哈希码和,其中
null
元素的哈希码定义为零。这就确保对于任意两个 set
s1
和s2
而言,s1.equals(s2)
就意味着s1.hashCode()==s2.hashCode()
,正如 Object.hashCode 的常规协定所要求的那样。
)
我们可以通过重写来完成你所希望的内容
public boolean equals(Object obj){Student ss=(Student )obj;boolean flag=false;if(this.id==ss.id) flag=true;return flag;}public int hashcode(){return this.id;}这样set就不准许加入id相同的对象了
对于set 和list的排序
类名 | 构造方法 | 排序 | ||
Set | new HashSet() TreeSet() | TreeSet | ||
List | new List() | Collections.Sort(list); |
List
1.在要排序的类中实现Comparable接