使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列

Posted xinchen01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列相关的知识,希望对你有一定的参考价值。

/*

 * 使用TreeSet和Comparator,写TreeSetTest2

 *要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,

 *排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列

 */

import java.util.Comparator;

import java.util.TreeSet;

 

public class TreeTest2

 

public static void main(String[] args)

// TODO Auto-generated method stub

TreeSet<Integer> treeSet = new TreeSet<>(new SetComparator());

//treeSet.add(-1);

treeSet.add(1);

treeSet.add(2);

treeSet.add(3);

treeSet.add(4);

treeSet.add(5);

treeSet.add(6);

treeSet.add(7);

treeSet.add(8);

treeSet.add(9);

treeSet.add(10);

System.out.println(treeSet);

for (Integer integer : treeSet)

System.out.print(integer+" ");

 

class SetComparator implements Comparator<Integer>

 

@Override

public int compare(Integer o1, Integer o2)

// TODO Auto-generated method stub

if(o1%2==1&&o2%2==0)

return -1;

if(o1%2==0&&o2%2==1)

return 1;

if (o1%2==1&&o2%2==1)

return o1-o2;

if (o1%2==0&&o2%2==0)

return o2-o1;

return 0;

 

 

/* * 使用TreeSet和Comparator,写TreeSetTest2 *要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列, *排序逻辑为奇数在前偶数在后,奇数按照升序排列,偶数按照降序排列 */import java.util.Comparator;import java.util.TreeSet;
public class TreeTest2
public static void main(String[] args) // TODO Auto-generated method stubTreeSet<Integer> treeSet = new TreeSet<>(new SetComparator());//treeSet.add(-1);treeSet.add(1);treeSet.add(2);treeSet.add(3);treeSet.add(4);treeSet.add(5);treeSet.add(6);treeSet.add(7);treeSet.add(8);treeSet.add(9);treeSet.add(10);System.out.println(treeSet);for (Integer integer : treeSet) System.out.print(integer+" ");
class SetComparator implements Comparator<Integer>
@Overridepublic int compare(Integer o1, Integer o2) // TODO Auto-generated method stubif(o1%2==1&&o2%2==0) return -1;if(o1%2==0&&o2%2==1) return 1;if (o1%2==1&&o2%2==1) return o1-o2;if (o1%2==0&&o2%2==0) return o2-o1;return 0;

以上是关于使用TreeSet和Comparator,写TreeSetTest2 要求:对TreeSet中的元素1,2,3,4,5,6,7,8,9,10进行排列,排序逻辑为奇数在前偶数在后,奇数按照升序排列的主要内容,如果未能解决你的问题,请参考以下文章

用TreeSet和Comparator给list集合元素去重

Comparator与Comparable,自定义排序和类比较器,TreeSet对象排序

关于java中TreeSet类的一些问题

集合框架(TreeSet原理)

java TreeSet的排序之定制排序

java中的treeSet中文排序