集合

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(工具类)
 
posted @ 2020-07-22 17:58  IT搬砖者  阅读(53)  评论(0编辑  收藏  举报