一、集合体系
二、集合分类以及特性
三、Collection接口方法
##### Collection是最基本的集合接口,一个Collection代表一组 Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行,于是衍生出两个子类接口List和Set
1.添加功能
boolean add(Object obj)向集合中添加一个元素
boolean addAll(Collection c) 向集合中添加一个集合的元素
#####2.删除功能
void clear():删除集合中的所有元素
boolean remove(Object obj):从集合中删除指定的元素
boolean removeAll(Collection c):从集合中删除一个指定的集合元素
3.判断功能
boolean isEmpty():判断集合是否为空
boolean contains(Object obj):判断集合中是否存在指定的元素
boolean containsAll(Collection c):判断集合中是否存在指定的一个集合中的元素
4.遍历功能
Iterator iterator():就是用来获取集合中每一个元素
5.长度功能
int size():获取集合中的元素个数
6.交集功能
boolean retainAll(Collection c):判断两个集合中是否有相同的元素
7.把集合转换成数组
Object[] toArray(): 把集合变成数组
T[] toArray(T[] a) : 把集合变成数组(指定数组类型)
四、List接口方法
List接口下的集合元素存储有序,可以重复.以下为List特有功能:
1.添加功能
void add(int index, Object obj):在指定位置添加元素
2.删除功能
Object remove(int index):根据指定索引删除元素,并把删除的元素返回
3.修改功能
Object set(int index, Object obj):把指定索引位置的元素修改为指定的值,返回修改前的值
4.获取功能
int indexOf(Object o):返回指定元素在集合中第一次出现的索引
Object get(int index):获取指定位置的元素
ListIterator listIterator():列表迭代器
5.截取功能
List subList(int fromIndex, int toIndex):截取集合。左闭右开[0,200)
五、Map接口方法
1.添加功能
V put(K key ,V value) :当key在集合中不存在是,添加元素;当key存在时替换元素
2.判断功能
boolean containsKey (Object key) :判断指定的键是否在集合中存在
boolean containsValue(Object value):判断指定的值是否在集合中存在
boolean isEmpty() :判断集合是否为空
3.删除功能
void clear():清除所有键值对数据
4.获取功能
Object get (Object key) :根据键获取值
Set entrySet() 获取所有的Entry
Set keyset(): 所有键的集合
Collection values() :所有值的集合
5.长度功能
Int size()
六、集合的遍历
1.list遍历
1)普通for循环
List<User> list = new ArrayList<User>();
for(int i=0; i<list.size(); i++){
User user = list.get(i);
}
2)加强for循环
List<User> list = new ArrayList<User>();
for(User user : list){
System.out.println(user);
}
3)通过迭代器循环
List<User> list = new ArrayList<User>();
Iteratror<User> it = list.iterator();
while(it.hasNext()){
User user = it.next(); // 没有声明泛型的话,要强转
}
2.map遍历(map里面是没有iterator方法的,只能通过map.entrySet(), map.keySet(), map.values()得到)
1)通过map.entrySet()得到entrySet使用iterator遍历
Map<Integer, String> map = new HashMap<Integer, String>();
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, String> entry = it.next();
Integer key = entry.getKey();
String value = entry.getValue();
}
2)通过map.entrySet()得到entrySet使用加强for循环
Map<Integer, String> map = new HashMap<Integer, String>();
Set<Map.Entry<Integer, String>> set = map.entrySet();
for(Map.Entry<Integer, String> entry : set){
Integer key = entry.getKey();
String value = entry.getValue();
}
3)通过map.keySet()得到keySet的加强for循环(KeySet也有iterator)
Map<Integer, String> map = new HashMap<Integer, String>();
Set<Integer> set = map.keySet();
for(Integer in : set){
Integer key = in;
String str = map.get(in);
}
4)通过map.values()得到values的加强for循环(但是好像拿不到key, Values也有iterator)
Map<Integer, String> map = new HashMap<Integer, String>();
Collection<String> values = map.values();
for(String value : values){
String in = value;
}
参考网址
1.Java基础——集合(一)——集合体系、Collection集合
2.Java基础——集合(二)——迭代器、Map集合
3.java源码分析之ArrayList
4.Java集合:HashMap源码剖析
5.HashMap实现原理及源码分析
6.LinkedHashMap和HashMap的比较使用
7.ConcurrentHashMap实现原理及源码分析
8.ConcurrentHashMap原理分析
注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激