Set集合

概述:Set集合也是一个接口,继承自Collection,与List类似,都需要通过实现来操作

特点:

      1.不允许有重复的元素

      2.没有索引,所以不可以使用普通的for循环进行遍历

package com.pj.set;

import java.util.HashSet;
import java.util.Set;

/**
 * @author pj_hxj
 * @Description:
 */
public class Demo01 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("张三");
        set.add("李四");
        set.add("王五");
        set.add("赵六");
        //HashSet集合对数据的读写顺序不做保证
        System.out.println(set);//[李四, 张三, 王五, 赵六]
        //添加重复的元素时虽然不会报错,但是也无法成功存入
        set.add("王五");
        System.out.println(set);//[李四, 张三, 王五, 赵六]

    }
}

TreeSet

特点:

     有序元素的存储集合,有序指的是逻辑顺序

          TreeSet():自然排序规则,默认的规则

          TrssSet(Comparator com):自定义排序规则

TreeSet()

package com.pj.set;

import java.util.TreeSet;

/**
 * @author pj_hxj
 * @Description:
 */
public class Demo02 {
    public static void main(String[] args) {
        TreeSet<Integer> treeSet = new TreeSet<>();
        treeSet.add(55);
        treeSet.add(33);
        treeSet.add(44);
        treeSet.add(11);
        treeSet.add(22);
        System.out.println(treeSet);//[11, 22, 33, 44, 55],默认的排序规则
    }
}

TrssSet(Comparator com)

package com.pj.set;

import java.util.Comparator;
import java.util.TreeSet;

/**
 * @author pj_hxj
 * @Description:
 */
public class Demo03 {
    public static void main(String[] args) {
        TreeSet<Integer> treeSet = new TreeSet<>(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
//                return 0;//[55]当返回值等于0时,表示后边的元素与第一个相同,因此只存入第一个元素
//                return 1;//[55, 33, 44, 11, 22],当返回值大于0时,表示后边的元素都比前边的大,所以都放到后边
//                return -1;//[22, 11, 44, 33, 55],当返回值小于0时,表示后边的元素都比前边的小,所以都放在前边
//                return o1-o2;//[11, 22, 33, 44, 55],升序排序
                return o2-o1;//[55, 44, 33, 22, 11],降序排序
            }
        });
        treeSet.add(55);
        treeSet.add(33);
        treeSet.add(44);
        treeSet.add(11);
        treeSet.add(22);
        System.out.println(treeSet);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值