list是有序且可重复的,set是无序且不重复的。这是一个误区,这里说的顺序有两个概念,一是按照添加顺序,二是按照自然顺序,即a-z排列;Set中的HashSet是无序的,hashSet的顺序既不是添加的顺序,也不是自然顺序,在不同的JDK中,这个顺序也可能是不同的。 1、LinkedHashSet :保证元素添加顺序 2、TreeSet:保证元素的自然顺序
import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet;
import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet;
public class Prectice {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("String1");
set.add("String4");
set.add("String3");
set.add("String2");
set.add("String5");
set.forEach(e-> System.out.print(e+" "));
System.out.println();
//LinkedHashSet会保证元素的添加顺序
Set<String> set2 = new LinkedHashSet<>();
set2.add("String1");
set2.add("String5");
set2.add("String3");
set2.add("String4");
set2.add("String2");
set2.forEach(e-> System.out.print(e+" "));
System.out.println();
//TreeSet保证元素自然顺序
Set<String> set3 = new TreeSet<>();
set3.add("String1");
set3.add("String5");
set3.add("String4");
set3.add("String2");
set3.add("String3");
set3.forEach(e-> System.out.print(e+" "));
}
}
String5 String4 String3 String2 String1 HashSet元素乱序 String1 String5 String3 String4 String2 LinkedHashSet保证元素添加顺序
String1 String2 String3 String4 String5 TreeSet元素按自然顺序排序
———————————————— blog.csdn.net/bingocoder/…