使用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;}}

原文地址:https://www.cnblogs.com/xinchen01/p/10974682.html

时间: 2024-10-05 19:39:56

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

笔记:mysql升序排列asc,降序排列desc

经常会忘记mysql中升序和降序用什么字符来表示,现在就做个笔记:升序排列asc,降序排列desc,举个例子,下面是按时间降序调用栏目的文章,也即是栏目最新文章 [e:loop={"select classid, classname, classpath from `[!db.pre!]enewsclass` where classid=275 order by classid desc limit 9 ",100,24,0}]<ul><li><a hre

javascript实现表格升序降序排列

javascript实现表格升序降序排列的步骤如下: 1,生成表格,并给各列表头添加onclick的排序响应函数 2,取得表格各行的数据,并存入临时数组 3,对该临时数组进行排序 4,利用createDocumentFragment,appendChild方法把排序好的数组转换成表格输出,至此排序完毕. 详细代码如下: 经测试可以直接使用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht

升序 Collections.sort(list) 降序 Collections.reserve(list) 随机 Collections.shuffle(list)

1 package Day28ketangzuoye; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.HashSet; 7 import java.util.List; 8 import java.util.Scanner; 9 10 public class DemoChars{ 11 12 public stat

按工资降序排列,若工资相同,则按照雇佣日期尚需排列,获取6~10 条记录

如题:按工资降序排列,若工资相同,则按照雇佣日期尚需排列,获取6~10 条记录 1 获取工资降序,雇佣日期升序的员工列表 select * from emp order by sal desc, hiredate asc; 2 获取rownun变量 select t.*, rownum rn from (select * from emp order by sal desc, hiredate asc) t; 3 获取6~10条记录 select a.* from (select t.*, ro

Shell练习 统计单词个数,降序排列

原文:https://leetcode.com/problems/word-frequency/ Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity sake, you may assume: words.txt contains only lowercase characters and space ' ' characters. Each wo

在一组降序排列的数组中插入一个数据,插入后,数组中数据依然按降序排列

分析: 1.数组固定,是一个倒序的数组 2.插入一个数据,这个数据插在哪呢,要比较,与数组中所有的元素比较,这里需要一个循环,因为是降序的数组,所以当第一次遇到比自己小的,那么这个位置就是要插入的位置 3.因为上一步被占了位置,那么从这个插入的数据开始,后面的原本的数据都得向右移一位 /** * */ package com.cn.u4; import java.util.Scanner; /** * @author Administrator *向有序数组中插入学员成绩 * 在一组降序排列的数

转&lt;&lt;C#集合Dictionary中按值的降序排列

转载地址:http://blog.sina.com.cn/s/blog_5c5bc9070100pped.html C#集合Dictionary中按值的降序排列 static void Main(string[] args) { Dictionary<string, int> dt = new Dictionary<string, int>(); dt.Add("美丽",2); dt.Add("校园",1); dt.Add("大学&

//输入学生人数,挨个输入姓名,身高,年龄,求平均年龄,然后按身高降序排列输出

13:52:49N U L L 2014/12/19 13:52:49using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text; namespace _1120_1210{    class JieGouTi    {        //输入学生人数,挨个输入姓名,身高,年龄,求平均年龄,然后按身高降序排列输出        public s

查询价格大于或等于&quot;超级本&quot;价格的商品,并且按价格降序排列

-- 查询价格大于或等于"超级本"价格的商品,并且按价格降序排列 //ANY用法 //与比较操作符联合使用,表示与子查询返回的任何值比较为 TRUE ,则返回 TRUE //简单案例 SELECT s1 FROM table1 WHERE s1 > ANY (SELECT s2 FROM table2) 1)在子查询中,返回的是 table2 的所有 s2 列结果(5,12,20) 2)然后将 table1 中的 s1 的值与之进行比较, 3)只要大于 s2 的任何值即表示为 T