码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合总结

时间:2015-04-09 13:53:25      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

Collection子接口:

---list接口(元素有序的可以重复)又称为“动态数组”
    ---vector(古老的实现类)特点是线程安全的(不管怎么样就是不用这个了)
    ---arrayList(List的主要实现类)(底层是用数组实现的)
    ---linkedList(底层是用链表实现的)(对于频繁的插入和删除操作建议选择这个)
contains()方法
集合中判断object元素是否相同的时候调用的是这个类的equals方法,所以一般在集合中存的时候都要求重写equals方法


---set接口(元素无序不可以重复 无序性但不是随机性,
另外无序性意思是元素在底层存储的位置没有规律的
)类似于高中集合,
    ---HashSet(主要实现类)遍历出来的顺序和添加进去的顺序是不同的
        ---linkedHashSet   遍历出来的顺序和添加进去的顺序是相同的,维护了添加顺序,插入性能比HashSet低,但是遍历性能是最好的
    ---SortedSet
        ---TreeSet特点:①往里添加的元素必须是同一个类型的,要么全是integer类型要么我全是String类型的。
                        ②可以按照指定的顺序遍历,像String是按照从小到大的顺序遍历的
                        ③对于自定义的类遍历,必须实现排序方式,不然TreeSet不知道按照什么方法遍历元素,所以插不进去,               ④自定义类有两种方法,1,自然排序 2,定制排序 (定制排序)关于这两个排序参考笔记(TreeSet中的自然排序和定制排序)
                        ⑤往TreeSet中添加元素的时候会首先比较compareTo()方法,一旦返回0,虽然两个对象仅仅此属性相同,但是程序还是会认为这两个元素是相同的,所以后面那个元素无法插入集合中! 添加到treeSet中的元素类必须保证compareTo()方法,HashCode()方法还有equals()方法一致

加入Set的集合中的元素必须实现equals()方法和HashCode()方法来保证Set集合中的不可重复性,equals()方法和HashCode()方法必须保持一致性
Set中的存储是使用了哈希算法。 存进去的时候首先调用器HashCode()方法求hash值,此hash值决定了元素的存储位置,如果此位置有元素再判断是否equals(),如果equals就无法存进去,如果只重写了equals() 方法,hash值还是不同还是无法存进Set中




Map子接口:具有key-value对的集合   类似于高中的函数 其中key是使用Set存的 value是使用Collection存储的
    ---HashMap(主要实现类)
    ---LinkedHashMap和
linkedHashSet相似   
    ---TreeMap 自然排序,定制排序(针对key的)
    ---HashTable(线程安全,古老的类不使用)(子类properties)

Map的遍历:①遍历key集 使用 Set key = map.KeySet(); 遍历key就行
②遍历value集, 使用Collection value = map.values();
③遍历key -value对
技术分享


Collections:操作Collection和Map的工具类。
详细方法可参考JavaAPI文档

Java集合总结

标签:

原文地址:http://blog.csdn.net/ttf1993/article/details/44957931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!