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);
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值