集合
1.集合
Collection接口:
List接口:存储有序的,可重复的元素
--------ArrayList、LinkedList、Vector
Set接口:
--------HashSet、LinkedHashSet、TreeSet
Map接口:存储“键-值”对的数据
--------HashMap、LinkedHashMap、TreeMap、Hashtable(子类:Properties)
2.Lise常用的方法:增(add(Object obj)) 删(remove) 改(set(int index,Object obj)查(get(int index) 插(add(int index,Object ele)) 长度(size())
int indexOf(Object obj):返回obj在集合中最后一次出现的位置,没有的话,返回-1
int lastIndexOf(Object obj):返回obj在集合中最后一次出现的位置,没有的话,返回-1
List subList(int fromIndex,int toIndex):返回从fromIndex到toIndex结束的左闭右开的集合
3、Set
Set:储存的元素是无序的,不可重复的!
①无序性:无序性!=随机性。真正的无序性,指的是元素的底层存储的位置是无序的。
②不可重复性:当向Set中添加进向相同元素的时候,后面的相同的元素不能添加进去
说明:要求添加进去Set中的元素所在的类,一定要重写equals()和hashCode()方法。
进而保证Set中元素的不可重复性
LinkedHashSet:使用链表维护一个添加进集合中的顺序。导致我们遍历LinkedHashSet集合元素时,是按照添加进去的顺序遍历的!
LinkedHashSet插入性能略低于HashSet,但是迭代访问Set里的全部元素时很好的性能。
TreeSet:1.向TreeSet中添加的元素必须是同一类的。
2.可以按照添加集合中的元素的指定的顺序遍历。像String,包装类等默认按照从小到大的顺序遍历。
3.当向TreeSet中添加自定义类的对象时,有两种排序方法①自然排序②定制排序
4.自然排序:要求定义类实现java.lang.Comparable接口并重写其compare的抽象方法
在此方法中,指明按照自定义类的哪个属性进行排序。
5.向TreeSet中添加元素时,首先按照compareTo()进行比较,一旦返回0,虽然仅两个对象的此属性值相同,但是成像会认为这两个对象是相同的,进而后一个对象就不能添加进来。
注意:compareTo()与hashCode()以及equals()三者保持一致!
HashMap
Collections(工具类)