package com.yao;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Arrays;
import java.util.List;
import java.util.TreeSet;
/**
* @author
* @date 2020/12/7 17:38
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sorted0 implements Comparable<Sorted0>{
private Integer num1;
@Override
public String toString() {
return "" +num1;
}
public int compareTo(Sorted0 o) {
return (num1 > o.num1 ? 1 : (num1 == o.num1 ? 1 : -1));
}
public static void main(String[] args) {
TreeSet<Sorted0> set=new TreeSet<Sorted0>();
List<Integer> srcData = Arrays.asList(1,2,5,7,3,2,1,7);
for (int nums:srcData) {
System.out.println(nums);
}
for (Integer nums:srcData) {
set.add(new Sorted0(nums));
}
System.out.println(set);
}
}
public int compareTo(Sorted0 o) {
return (num1 > o.num1 ? 1 : (num1 == o.num1 ? 0 : -1));
}
-
o -- 要比较的对象。
返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
- 如果参数字符串等于此字符串,则返回值 0;
- 如果此字符串小于字符串参数,则返回一个小于 0 的值;
- 如果此字符串大于字符串参数,则返回一个大于 0 的值。
package com.yao;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Arrays;
import java.util.List;
import java.util.TreeSet;
/**
* @author
* @date 2020/12/7 17:38
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sorted implements Comparable<Sorted>{
private Integer num1;
private Integer num2;
@Override
public String toString() {
return "{" +
+ num1 +","+ num2 +
'}';
}
public int compareTo(Sorted o) {
if(num2>o.num2) return 1;
else if(num2<o.num2) return -1;
else{
if(num1>o.num1) return -1;
else return 1;
}
}
public static void main(String[] args) {
TreeSet<Sorted> set=new TreeSet<Sorted>();
List<int[]> srcData = Arrays.asList(new int[]{100,100},new int[]{2,100},new int[]{3,100},new int[]{1,-1},new int[]{10,80});
for (int[] nums:srcData) {
System.out.println((nums[0]+" "+nums[1]));
}
for (int[] nums:srcData) {
set.add(new Sorted(nums[0],nums[1]));
}
System.out.println(set);
}
}