1. List 一定是有序的
ArrayList 和 LinkedList 中的元素的顺序是按照添加时的顺序排列的。这就是所说的List 有序。
2. Set 不一定是无序的
HashSet 是无序的,不能保证元素的添加顺序。
LinkedHashSet 可以保证元素的添加顺序。
TreeSet 是根据元素的自然顺序进行排序的(A-Z)
类型 | 是否可以重复 | 是否保证元素添加的顺序 | 是否保证元素自然的顺序(A-Z) |
List | 可以 | 是 | 否 |
HashSet | 不可以 | 否 | 否 |
LinkedHashSet | 不可以 | 是 | 否 |
TreeSet | 不可以 | 否 | 是 |
// 1. ArrayList 输出 s1 s3 s5 s4 s2
List<String> arrayList = new ArrayList<>();
arrayList.add("s1");
arrayList.add("s3");
arrayList.add("s5");
arrayList.add("s4");
arrayList.add("s2");
System.out.println(">>>>>>>>>>>>>>>>> ArrayList" );
for (String s : arrayList) {
System.out.print(s + " ");
}
System.out.println();
// 2. LinkedList 输出 s1 s3 s5 s4 s2
List<String> linkedList = new LinkedList<>();
linkedList.add("s1");
linkedList.add("s3");
linkedList.add("s5");
linkedList.add("s4");
linkedList.add("s2");
System.out.println(">>>>>>>>>>>>>>>>> LinkedList" );
for (String s : linkedList) {
System.out.print(s + " ");
}
System.out.println();
// 3. HashSet 输出 s3 s4 s5 s1 s2
Set<String> hashSet = new HashSet<>();
hashSet.add("s1");
hashSet.add("s3");
hashSet.add("s5");
hashSet.add("s4");
hashSet.add("s2");
System.out.println(">>>>>>>>>>>>>>>>> HashSet" );
for (String s : hashSet) {
System.out.print(s + " ");
}
System.out.println();
// 4. LinkedHashSet 输出 s1 s3 s5 s4 s2
Set<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("s1");
linkedHashSet.add("s3");
linkedHashSet.add("s5");
linkedHashSet.add("s4");
linkedHashSet.add("s2");
System.out.println(">>>>>>>>>>>>>>>>> LinkedHashSet" );
for (String s : linkedHashSet) {
System.out.print(s + " ");
}
System.out.println();
// 5. TreeSet 输出 s1 s2 s3 s4 s5
Set<String> treeSet = new TreeSet<>();
treeSet.add("s1");
treeSet.add("s3");
treeSet.add("s5");
treeSet.add("s4");
treeSet.add("s2");
System.out.println(">>>>>>>>>>>>>>>>> TreeSet" );
for (String s : treeSet) {
System.out.print(s + " ");
}