Set集合排序以及Java中数组、List、Set互相转换 您所在的位置:网站首页 数组转成set Set集合排序以及Java中数组、List、Set互相转换

Set集合排序以及Java中数组、List、Set互相转换

2024-07-13 06:50| 来源: 网络整理| 查看: 265

TreeSet使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序,具体取决于使用的构造方法。通俗一点来说,就是可以按照排序后的列表显示,也可以按照指定的规则排序。

public class test { public static void main(String[] args) { Set set = new TreeSet(); set.add(1); set.add(3); set.add(34); set.add(6); set.add(4); set.add(5); set.remove(34); System.out.println(set); List result = new ArrayList(set); System.out.println(result); } }输出 set:[1, 3, 4, 5, 6] result :[1, 3, 4, 5, 6]

若想它倒序输出,可以指定一个规则让他倒序输出

public class TreeSetTest3 { public static void main(String[] args) { Set set = new TreeSet(new MyComparator()); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.add("A"); for(Iterator iterator = set.iterator();iterator.hasNext();){ System.out.print(iterator.next()+" "); } } } class MyComparator implements Comparator{ @Override public int compare(String o1, String o2) { return o2.compareTo(o1);//降序排列 } }

输出:e d c b a A

如果Set集合中放入的是我们自己定义的一个类类型呢?

注意:一定要定义一个排序规则类实现Comparator接口,与上面的方法类似

记住O1和O2的顺序,O1大于O2为升序,反之降序

public class TreeSetTest2 { public static void main(String[] args) { Set set = new TreeSet(new PersonComparator()); Person p1 = new Person(10); Person p2 = new Person(20); Person p3 = new Person(30); Person p4 = new Person(40); set.add(p1); set.add(p2); set.add(p3); set.add(p4); for(Iterator iterator = set.iterator();iterator.hasNext();){ System.out.print(iterator.next().score+" "); } } } class Person{ int score; public Person(int score){ this.score = score; } public String toString(){ return String.valueOf(this.score); } } class PersonComparator implements Comparator{ @Override public int compare(Person o1, Person o2) { return o1.score - o2.score; } }

输出:10 20 30 40

如果按照一个人的分数的倒序排列,只需要更改compare方法中的o2.score-o1.score

数组转Set String[] staffs = new String[]{"Tom", "Bob", "Jane"}; Set staffsSet = new HashSet(Arrays.asList(staffs)); staffsSet.add("Mary"); // ok staffsSet.remove("Tom"); // ok Set转数组 String[] staffs = new String[]{"Tom", "Bob", "Jane"}; Set staffsSet = new HashSet(Arrays.asList(staffs)); Object[] result = staffsSet.toArray(); Set转List String[] staffs = new String[]{"Tom", "Bob", "Jane"}; Set staffsSet = new HashSet(Arrays.asList(staffs)); List result = new ArrayList(staffsSet); List转Set String[] staffs = new String[]{"Tom", "Bob", "Jane"}; List staffsList = Arrays.asList(staffs); Set result = new HashSet(staffsList);



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有