标签:
Collection 接口
公共方法:
1.增 add() addAll()
2.删 clear() remove() removeAll() retainAll()(取交集)
3.判断 contains() containsAll() equals() isEmpy()
两大子接口:
List 接口 有序 重复
ArrayList 类 底层是数组实现的 增删速度慢 查询速度快 不同步 效率高
去除其中的相同元素时,较复杂
Vector 类 底层也是数组实现 同步 效率底 增删速度慢 查询速度快
LinkedList 类 底层是链表实现的 查询速度慢 增删速度快
遍历方法:1.迭代器 2.toArray() 3.get() 和 size() 4.foreach
Set 接口 无序 唯一
HashSet 类 数据结构是哈希表,实现无序和唯一的方式是通过存入其中对象的hashCode()
方法和equals()方法实现的
TreeSet 类 无序 唯一 排序 底层实现的数据结构是红黑树 自然排序是通过实现compareable()
接口,重写compareTo()方法来搞定的 自定义比较器类是实现comparetor接口,重写
compare()方法来搞定的
共同点:Iterator(迭代器)
通过迭代器来遍历collection集合 在使用迭代器的过程中不可以使用集合自有的增删操作,只能
使用Iterator的方法来操作,否在会出现异常
Map 接口 key-value
方法: put()
remove()
clear()
containsKey()
containsValue()
获取:
keySet()
valuse()
entrySet()
get()
HashMap 哈希表数据结构 保证唯一性 和无序性
案例:HashMap<String,String>
HashMap<Integer,String>
HashMap<Student,String> 要重写Student的hashCode()方法和equals()方法
HashMap<String,Student>
TreeMap 红黑树数据结构 排序 唯一性
案例:TreeMap<String,String>
TreeMap<Integer,String>
TreeMap<Student,String> Student要实现compareable接口,重写compareTo方法,或者自定义比较类
TreeMap<String,Student>
HashMap和HashTable的区别?
1.HashMap的键和值都可以为null
2.HashTable也可以,但是我们一般不这样用
3.HashTable是同步的
Collections操作类
1.sort
2.binarySearch 找的到就返回索引,找不到就返回(-(插入点)-1)
3.max
4.reverse(逆序)
5.shuffle(洗牌) 使用默认随机源对列表进行置换
标签:
原文地址:http://www.cnblogs.com/ccharp/p/4666004.html