目录
1.Java中的集合
数据结构:堆,栈,队列,树,图,向量.......
背景:集合存在的意义(变量、数组)
变量:只能存储一个对象(值)
数组:可以存储多个对象(值),数组一旦定义了初始的长度,则不能改变,数组的类型在声明的时候就已经固定了
集合:可以存储无限个对象(值),对象的数据类型也可以是任意的数据类型
单列存储:Collection接口
Collection子接口:List、Set接口
2.List集合接口
List接口:有序的,可重复的
ArrayList实现类
ArrayList特征:有序的,可重复的,可以存储null,线程不安全,底层实现方式是数组
常用方法
1.add方法:向集合中进行添加元素
arrayList.add("admin");
2.iterator方法:返回一个迭代器,迭代器中存储集合的元素
Iterator<String> it = arrayList.iterator();
3.size方法:返回集合中存储的元素个数
arrayList.size();
4.get方法:根据传入的下标,返回该下标在集合中对应的元素
arrayList.get();
5.forEach方法:遍历集合中的元素
arrayList.forEach(s -> System.out.println(s));
6.addAll方法:向集合中再添加一个集合
arrayList.addAll();
7.clear方法:清除集合中所有的元素
arrayList.clear();
8.contains方法:判断集合中是否包含某一个元素
arrayList.contains();
9.equals方法:比较两个集合中的元素是否相等
arrayList.equals();
10.indexOf方法:判断指定元素在集合中的下标,若不存在则返回-1
arrayList.indexOf();
11.isEmpty方法:判断集合中是否存在元素
arrayList.isEmpty();
12.remove方法:移除集合中的某个元素(通过下标或者元素进行移除操作)
arrayList.remove();
13.removeAll方法:从此列表中删除指定集合中包含的所有元素
arrayList.removeAll(Collection<?> c);
14.retainAll方法:把原集合中非传入的集合中的元素进行移除
arrayList.retainAll();
15.set方法:替换集合中指定下标位置上的元素
arrayList.set();
16.subList方法:截取集合中指定的子集合(左闭右开)
arrayList.subList();
17.toArray方法:把集合转为Object类型数组
Object[] objects = arrayList.toArray();
LinkedList实现类
LinkedList特征:有序的,可重复的,可存储null,线程不安全,底层实现方式是双链表
常用方法:
1.addFirst方法:在集合的头部添加元素
2.addLast方法:在集合的尾部添加元素
3.peek方法:检索但不删除此列表的头(第一个元素)
4.poll方法:检索并删除此列表的头(第一个元素)
5.pop方法:删除并返回第一个元素
6.push方法:在头部添加元素
其他方法,可以参照ArrayList实现类
Vector实现类
vector特征:有序的,可重复的,可以存储null,线程安全的,底层实现方式是数组
常用方法:
1.addElement方法:在集合的尾部添加元素
2.capacity方法:返回集合的容量
3.elementAt方法:根据传入的下标返回该下标在集合中对应的元素
4.trimToSize方法:把集合的容量设置为集合中元素的个数值(释放一部分的内存空间)
其他方法,可以参照ArrayList实现类
3.Set集合接口
特征:不允许存储重复的元素,可以存储null(只能存一个null)
HashSet实现类
HashSet特征:不允许存储重复的元素,可以存储null,无序的,线程不安全,底层是HashMap
常用方法:
1.add方法:向集合中添加元素
2.size方法:返回集合中元素的个数
3.iterator方法:返回迭代器,迭代器中存储了集合中的所有元素
iterator.hashNext方法:判断迭代器是否有下一个元素
iterator.next方法:返回迭代器游标当前指向的那个元素
4.forEach方法:遍历set集合
5.contains方法:判断集合中是否包含某一个元素
6.remove方法:移除集合中的元素
7.addAll方法:向集合中添加一个集合
8.toArray方法:把集合转为Object类型的数组
9.removeAll方法:把原集合中和传入的集合中的元素相同的删除
10.stream方法:把集合转为流(java8的新特性)
11.removeIf方法:从集合中删除满足条件的元素
TreeSet实现类:
TreeSet特征:特征:不允许存储重复的元素,不可以存储null,有序的(自然顺序),线程不安全,底层是TreeMap实现
常用方法:
1.add方法:向集合中添加元素
2.forEach方法:遍历set集合中的元素(Lambda表达式)
3.ceiling方法:返回集合中大于或等于给定元素的最小元素(根据排序的前后顺序来确定大小)
4.size方法:返回集合中元素的个数
5.clear方法:清除集合中的元素
6.contains方法:判断集合中是否包含某一个元素
7.escendingIterator方法:把集合中的元素降序后存入到迭代器中,再通过循环遍历迭代器中的元素
8.descendingSet方法:把集合中的元素降序后存入到set集合中,再通过循环遍历set中的元素
9.frist方法:获取集合中的第一个元素
10.last方法:获取集合中的最后一个元素
11.floor方法:返回集合中小于或等于给定元素的最大元素(根据排序的前后顺序来确定大小)
12.headSet方法:返回此集合的部分的视图,其元素严格小于指定的元素
13.higher方法:返回集合中大于给定元素的最小元素(根据排序的前后顺序来确定大小)
14.lower方法:返回集合中小于给定元素的最大元素(根据排序的前后顺序来确定大小)
15.pollFirst方法:检索并删除第一个元素,若集合为空,则返回null
16.remove方法:移除集合中的元素
17.subSet方法:根据起始元素对象来截取集合中的部分元素
4.Map集合接口
Map:存储的是一对键值对数据(key-value)
Map的特性:键不能重复,值可以重复(equals方法和hashcode方法)
HashMap实现类
HashMap实现类特性:无序的,键不能重复,值可以重复,并允许null值和null键,线程不安全,底层是哈希表来实现的
常用方法:
1.put方法:把键值对的数据存储到集合中
2.get方法:通过传入的key获取该key对应的value
3.keySet方法:把map集合中的所有key存储到一个Set集合中
4.entrySet方法:把map集合中的所有键值对数据存储到一个Set集合中(Set的泛型为Map.entry<k,v>)
5.forEach方法:把map中的键值对数据遍历出来(通过Lambda表达式)
6.values方法:把map中所有的value值存储到Collection集合中
7.clear方法:清除map中的所有数据
8.containsKey方法:判断map集合中是否包含指定的键
9.containsValue方法:判断map集合中是否包含指定的值
10.getOrDefault方法:根据指定的key来获取对应的value值,若key不存在,则返回指定的默认值
11.isEmpty方法:判断map集合中的元素的个数是否为0
12.putAll方法:向map中再存入一个map集合
13.remove方法:从map集合中根据key来移除指定的键值对数据
14.size方法:返回集合中的元素个数
15.replace方法:替换指定的key来替换该key所对应的value值
HashTable实现类
HashTable实现类特征:无序的,键不能重复,值可以重复,不允许null值和null键,线程安全,底层基于哈希表来实现的
常用方法:参照HashMap
TreeMap实现类
TreeMap实现类特性:有序的,键不能重复,值可以重复,允许null值但不允许null键,线程不安全,底层基于二叉树来实现的
常用方法:
1.put方法:把键值对的数据存储到集合中
2.get方法:通过传入的key获取该key对应的value
3.keySet方法:把map集合中的所有key存储到一个Set集合中
4.entrySet方法:把map集合中的所有键值对数据存储到一个Set集合中(Set的泛型为weiMap.entry<k,v>)
5.forEach方法:把map中的键值对数据遍历出来(通过Lambda表达式)
6.values方法:把map中所有的value值存储到Collection集合中
7.clear方法:清除map中的所有数据
8.containsKey方法:判断map集合中是否包含指定的键
9.containsValue方法:判断map集合中是否包含指定的值
10.getOrDefault方法:根据指定的key来获取对应的value值,若key不存在,则返回指定的默认值
11.isEmpty方法:判断map集合中的元素的个数是否为0
12.putAll方法:向map中再存入一个map集合
13.remove方法:从map集合中根据key来移除指定的键值对数据
14.size方法:返回集合中的元素个数
15.replace方法:替换指定的key来替换该key所对应的value值
16.ceilingEntry方法:返回大于或等于给定键的最小键值对数据
17.descendingKeySet方法:返回map中包含的键的相反顺序的NavigableSet集合
18.descendingMap方法:返回map中反向排序的键值对的集合