Set集合存储特点:
1):不允许元素重复.
2):不会记录元素的先后添加顺序.
----------------------------------------------------------------------------------------------
TreeSet集合底层才有红黑树算法,会对存储的元素默认使用自然排序(从小到大).
注意: 必须保证TreeSet集合中的元素对象是相同的数据类型,否则报错
. ----------------------------------------------------------------------------------------------
TreeSet的排序规则:
自然排序(从小到大): TreeSet调用集合元素的compareTo方法来比较元素的大小关系,然后讲集合元素按照升序排列(从小到大).
注意:要求TreeSet集合中元素得实现java.util.Comparable接口.
package study3;
import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;
public class RandomNumber {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
//11 10 20 40 32 67 40 20 89 300 400 15
System.out.println("input: ");
Comparator<Integer> comparator = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1>o2?-1:o1==o2?0:1;
}
};
while(sc.hasNext()){
int num = sc.nextInt();
TreeSet<Integer> set = new TreeSet<Integer>();
TreeSet<Integer> set1 = new TreeSet<>(comparator);
for(int i = 0 ; i < num ;i++){
int curr = sc.nextInt();
set.add(curr);
set1.add(curr);
}
for(Integer i : set){
System.out.println("默认排序"+i);
}
for(Integer i : set1){
System.out.println("倒排序"+i);
}
}
}
}
测试结果:
input:
11 10 20 40 32 67 40 20 89 300 400 15
默认排序10
默认排序15
默认排序20
默认排序32
默认排序40
默认排序67
默认排序89
默认排序300
默认排序400
倒排序400
倒排序300
倒排序89
倒排序67
倒排序40
倒排序32
倒排序20
倒排序15
倒排序10