set集合的学习

Set接口里面的集合,所存储的元素就是不重复的。

Hashset可查重,使用Hashset自定义泛型时,可在泛型类中添加equals()和hashCode()自动生成方法,实现相等的元素查重;

TreeSet可排序,使用TreeSet自定义泛型时,即可在泛型类中实现接口自动添加实现方法:

@Override

   public int compareTo(Day3_test4 o) {

       return o.getName().equals(this.getName())?0:this.getAge()-o.getAge();

   }

返回值0实现查重,为1可不查重,返回的差值为排序方式。

也可在创建TreeSet时添加比较器:

Setsets=new TreeSet<>(new Comparator() {

   @Override

   public int compare(Day3_test4 o1, Day3_test4 o2) {

       return o1.getName().equals(o2.getName())?0:o1.getAge()-o2.getAge();

   }

});

同样返回值0实现查重,为1可不查重,o1-o2为正序排列,反之为倒序排列。

使用Treeset创建自定义集合,根据学生总分排序:

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Set<Vocjd3> sets = new TreeSet<>(new Comparator<Vocjd3>() {
            @Override
            public int compare(Vocjd3 o1, Vocjd3 o2) {
                return o1.getName().equals(o2.getName()) ? 0 : o2.getzof() - o1.getzof();
            }
        });
        for (int i = 0; i < 3; i++) {
            System.out.print("请输入姓名:");
            String name = scanner.nextLine();
            System.out.print("请输入语文成绩:");
            int yuwen = Integer.parseInt(scanner.nextLine());
            System.out.print("请输入数学成绩:");
            int shuxue = Integer.parseInt(scanner.nextLine());
            System.out.print("请输入英语成绩:");
            int yingyu = Integer.parseInt(scanner.nextLine());
            sets.add(new Vocjd3(name, yuwen, shuxue, yingyu));
        }
        for (Vocjd3 set : sets) {
            System.out.println(set);
        }

    }
上一篇:深度学习 神经网络中的前向传播和反向传播算法推导


下一篇:13List的sort