一、LinkedHashSet汇合

public class LinkedHashSet<E> implements Set<E>
是具体的类

  • 哈希表和链表实现的Set接口
  • 存入和取出的程序统一(链表个性)
  • 没有反复的元素(哈希表)

    演示:

    的确程序统一且不反复

二、TreeSet汇合

public class TreeSet implements NavigableSet<E>
public interface NavigableSet<E> extends SortedSet<E>
public interface SortedSet<E> extends Set<E>
是具体的类

1、TreeSet()元素有程序,程序规定取决于构造函数

  • 若是无参结构,则天然排序
  • 若是有参结构,则依据指定的比拟器进行排序
    2、没有索引,不能一般for遍历,能够Iterator和加强for
    3、与Set<E>有间接继承关系,因而元素不能反复
    留神:
    汇合只能存储援用类型

如果想存储根本类型,必须用他们的包装类
例如存储整数只能用Integer

TreeSet<Integer> it = new TreeSet<Integer>();

与存入同序

不反复

四、Comparable接口

public interface Comparable

自定义的类应用TreeSet须要实现Comparable接口,重写办法

public class Student implements Comparable<Student>{}
@Overwritepublic int compareTo(Student o){    return 0;}

return 0;只输入第一个元素
return 1;输入的元素按升序
return -1;输入的元素
按年龄排序:

@Overwritepublic int compareTo(Student o){    int num = this.age-o.age;//升序    //int num = o.age-this.age;//降序    return num;}

如果年龄雷同,比拟名字
名字是String类型,他曾经实现了Comparable接口

@Overwritepublic int compareTo(Student o){    int num = this.age-o.age;//升序    //int num = o.age-this.age;//降序    int num1 = num==0?this.name.compareTo(o.name):num;    return num;}

三、Comparator比拟器

有参构造方法中接管new comparator<E>,即comparator的对象重写compare办法,留神次要条件和主要条件(三元运算符)


五、案例一


六、案例二




Random类的用法:创建对象,对象调用办法nextInt(bound)