java中的Set集合

74 阅读1分钟

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/…