美文网首页
Set排序方法记录

Set排序方法记录

作者: 随记草堂 | 来源:发表于2022-11-14 23:54 被阅读0次

    在开发过程中,常常需要对数据按照指定要求排序。掌握一些常用的集合的排序还是非常有必要的。本篇文章针对Set的排序方法做一下简单的记录。

    一. 创建TreeSet对象,重写比较器

    public class SetMain {

    public static void main(String[] args) {
    Set<String> keys = new HashSet<>();
    keys.add("377");
    keys.add("655");
    keys.add("342");
    keys.add("101");
    keys.add("222");
    System.out.println("排序前:" + keys);
    // 创建TreeSet对象,传入比较器,重写比较方法
    TreeSet<String> treeKeys = new TreeSet<String>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
    return o1.compareTo(o2);
    }
    });
    treeKeys.addAll(keys);
    System.out.println("排序后:" + treeKeys);
    }
    }

    二. 在第一种的基础上优化写法

    public class SetMain {

    public static void main(String[] args) {
    Set<String> keys = new HashSet<>();
    keys.add("377");
    keys.add("655");
    keys.add("342");
    keys.add("101");
    keys.add("222");
    System.out.println("排序前:" + keys);
    // 创建TreeSet对象
    TreeSet<String> treeKeys = new TreeSet<String>(((o1,o2)->o1.compareTo(o2)));
    treeKeys.addAll(keys);
    System.out.println("排序后:" + treeKeys);
    }
    }

    三. stream方式处理

    public class SetMain {
    public static void main(String[] args) {
    Set<String> keys = new HashSet<>();
    keys.add("377");
    keys.add("655");
    keys.add("342");
    keys.add("101");
    keys.add("222");
    System.out.println("排序前:" + keys);
    System.out.println("排序后:" + keys.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList()));

    // System.out.println("排序后:" + keys.stream().sorted(new Comparator<String>() {

    // @Override
    // public int compare(String o1, String o2) {
    // return o1.compareTo(o2);
    // }
    // }).collect(Collectors.toList()));
    }
    }

    四. 保存到ArrayList里面,用Collections.sort()比较

    public class SetMain {

    public static void main(String[] args) {
    Set<Integer> keys = new HashSet<>();
    keys.add(377);
    keys.add(655);
    keys.add(342);
    keys.add(101);
    keys.add(222);
    System.out.println("排序前:" + keys);
    List<Integer> list = new ArrayList<Integer>();
    for (Integer i : keys) {
    list.add(i);
    }
    Collections.sort(list);
    System.out.println("排序后:" + list);
    }
    }

    相关文章

      网友评论

          本文标题:Set排序方法记录

          本文链接:https://www.haomeiwen.com/subject/mjrsxdtx.html