1.集合下面有两个大类
Collection类: List, Set;
Map类
List:
ArrayList:
底层是可变数组, 有序,值可重复,可存放多个null, 线程不安全, 改查效率高, 第一次10, 第二次1.5倍扩
LinkedList:
底层是双向链表, 有序,值可重复,可存放多个null, 线程不安全, 增删效率高
Vector:
底层是可变数组, 有序,值可重复,可存放多个null, 线程安全, 第一次10, 第二次2倍扩
List遍历方式:1.增强for 2.迭代器 3.for循环
Set:
HashSet:
底层是数组+链表+红黑树, 无序,值唯一,可存放一个null(存放多个不会报错,会覆盖),第一次16,第二次2倍扩
LinkedHashSet:
底层是数组+双向链表, 有序, 值唯一, 可存放一个null(存放多个不会报错,会覆盖)
TreeSet:
底层是红黑树, 有序, 值唯一, 不可存放null
Set遍历方式: 1.增强for 2.迭代器
Map:
HashMap:
底层是数组+链表+红黑树, 无序, key唯一(可放一个null,放多个不会报错,会覆盖), value不唯一(可放多个null),第一次16,第二次2倍扩,线程不安全
TreeMap:
底层是红黑树, 有序,key唯一(不可存null),value不唯一(可放多个null), 线程不安全
HashTable:
无序,key唯一,value不唯一,都不能放null,线程安全,第一次是11,第二次是2倍+1
Map遍历方式: keySet之后,可用增强for和迭代器
各种类型代码演示:
package base;
import java.util.*;
/**
* @program: demo1
* @ClassName: 集合
* @description:
* @author: HY
* @create: 2024-05-12 18:23
*/
public class Person {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("hello,ArrayList");
list.add(null);
list.add(null);
for (String list1 : list){
System.out.println(list1);
}
System.out.println("============================");
LinkedList<String> llist = new LinkedList<>();
llist.add("hello,LinkedList");
llist.add(null);
llist.add(null);
Iterator<String> iterator = llist.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
}
System.out.println("============================");
Vector<String> vector = new Vector<>();
vector.add("hello,Vector");
vector.add(null);
vector.add(null);
for (int i = 0; i < vector.size(); i++) {
System.out.println(vector.get(i));
}
System.out.println("============================");
HashSet<String> hashSet = new HashSet<>();
hashSet.add("hello,HashSet"); //无序,值唯一,可放null
hashSet.add(null);
hashSet.add(null);
Iterator<String> iterator1 = hashSet.iterator();
while (iterator1.hasNext()) {
String next = iterator1.next();
System.out.println(next);
}
System.out.println("============================");
LinkedHashSet<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("hello,LinkedHashSet"); //有序,值唯一,可放null
linkedHashSet.add("hello,world");
linkedHashSet.add(null);
linkedHashSet.add(null);
for (String s : linkedHashSet){
System.out.println(s);
}
System.out.println("============================");
TreeSet<String> treeSet = new TreeSet<>();
treeSet.add("hello,TreeSet"); //有序,值唯一,不可以存null
treeSet.add("hello,TreeSet22");
// treeSet.add(null);
// treeSet.add(null);
for (String s : treeSet){
System.out.println(s);
}
System.out.println("============================");
HashMap<String,String> hashMap = new HashMap<>();
hashMap.put("1","hello,HashMap"); //无序,key唯一,value不唯一,可存null
hashMap.put(null,null);
hashMap.put(null,"2");
for (String s : hashMap.keySet()){
System.out.println("key: "+s + " value: "+ hashMap.get(s));
}
System.out.println("============================");
TreeMap<String,String> treeMap = new TreeMap<>();
treeMap.put("1","hello,TreeMap");//有序,key唯一,value不唯一,key不可存null(存了会报错),value可存null
treeMap.put("3","hello,TreeMap");
// treeMap.put(null,null);
treeMap.put("2",null);
Set<String> strings = treeMap.keySet();
Iterator<String> stringIterator = strings.iterator();
while (stringIterator.hasNext()) {
String next = stringIterator.next();
System.out.println("key: "+next + " value: "+ treeMap.get(next));
}
System.out.println("============================");
Hashtable<String,String> hashtable = new Hashtable<>();
hashtable.put("1","hello,Hashtable");//无序,key唯一,value不唯一,不能放null
hashtable.put("2","hello,Hashtable");
// hashtable.put("null",null);
for (String s : hashtable.keySet()){
System.out.println("key: "+s + " value: "+ hashtable.get(s));
}
}
}