LinkedList的底层数据结构是双向链表。
以下代码包含创建与遍历。
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class Demo01 {
public static void main(String[] args) {
List list = new LinkedList<>(List.of(5, 7, 2, 7, 4, 8, 4, 5, 9, 3, 6, 9, 36, 8));
list.forEach(System.out::print);
System.out.println();
Iterator iterator = list.iterator();
while (true) {
if (iterator.hasNext()) {
System.out.print(iterator.next());
}else {
break;
}
}
System.out.println();
Object[] objects = list.toArray();
Iterator
二、TreeSet
TreeSet的底层数据结构是红黑树。
TreeSet即value为PRESENT的TreeMap,PRESENT = new Object()。
以下代码为创建和遍历。
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
public class Test05 {
public static void main(String[] args) {
TreeSet ts = new TreeSet<>(List.of(4,6,8,21,6,4,8,4,5,5,3,6,5347,57,356,34,624,6,246));
Iterator iterator = ts.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next());
}
System.out.println();
Iterator iterator2 = ts.stream().iterator();
iterator2.forEachRemaining(System.out::print);
System.out.println();
Iterator iterator1 = ts.stream().toList().stream().iterator();
iterator1.forEachRemaining(System.out::print);
}
}
三、HashMap
HashMap在1.7(含)之前的数据结构是数组加链表,在1.7之后底层数据结构是链表加红黑树。
HashMap是无序的,但内部按照Hash码排序,每次输出顺序不变,不可指定排序方式。
以下代码为HashMap的创建和遍历。
package com.map;
import java.util.HashMap;
import java.util.Map;
public class Demo01 {
public static void main(String[] args) {
HashMap hm = new HashMap<>();
hm.put(2, "zhangsan");
hm.put(1, "lisi");
hm.putAll(Map.of(4, "wangwu", 5, "zhaoliu", 3, "sunqi"));
System.out.println(hm);
// hm.clear();
System.out.println(hm);
for (Map.Entry entry : hm.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
四、TreeMap
TreeMap的底层数据结构是红黑树。
TreeMap是有序的:TreeMap按照key的字典顺序来排序,默认是升序(注意和HashMap的按照hashCode排序来区别,HashMap是无序的)。
以下代码为TreeMap的创建和遍历。
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class Demo02 {
public static void main(String[] args) {
TreeMap tm = new TreeMap<>((a,b) -> a.compareTo(b));
tm.put("one", "zhangsan");
tm.put("two", "lisi");
tm.put("three", "wangwu");
tm.put("four", "zhaoliu");
tm.put("five", "sunqi");
System.out.println(tm);
Iterator> iterator = tm.entrySet().iterator();
while (true){
if(iterator.hasNext()){
System.out.print(iterator.next() + " ");
}else {
break;
}
}
}
}



