一、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)