HashSet、 LinkedHashSet、TreeSet之间的区别

步骤 1 : HashSet LinkedHashSet TreeSet

HashSet: 无序

LinkedHashSet: 按照插入顺序

TreeSet: 从小到大排序

package collection;

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.TreeSet; public class TestCollection {
public static void main(String[] args) {
HashSet<Integer> numberSet1 =new HashSet<Integer>();
//HashSet中的数据不是按照插入顺序存放
numberSet1.add(88);
numberSet1.add(8);
numberSet1.add(888); System.out.println(numberSet1); LinkedHashSet<Integer> numberSet2 =new LinkedHashSet<Integer>();
//LinkedHashSet中的数据是按照插入顺序存放
numberSet2.add(88);
numberSet2.add(8);
numberSet2.add(888); System.out.println(numberSet2);
TreeSet<Integer> numberSet3 =new TreeSet<Integer>();
//TreeSet 中的数据是进行了排序的
numberSet3.add(88);
numberSet3.add(8);
numberSet3.add(888); System.out.println(numberSet3); }
}

练习既不重复,又有顺序

利用LinkedHashSet的既不重复,又有顺序的特性,把Math.PI中的数字,按照出现顺序打印出来,相同数字,只出现一次

答案 :

Java自学-集合框架 HashSet、LinkedHashSet、TreeSet之间的区别-LMLPHP

package collection;

import java.util.LinkedHashSet;
import java.util.Set; public class TestCollection {
public static void main(String[] args) {
Set<Integer> result = new LinkedHashSet<>();
String str = String.valueOf(Math.PI);
// 去掉点
str = str.replace(".", "");
char[] cs = str.toCharArray();
for (char c : cs) {
int num = Integer.parseInt(String.valueOf(c));
result.add(num);
}
System.out.printf("%s中的无重复数字是:%n",String.valueOf(Math.PI));
System.out.println(result); }
}
05-11 14:48