JAVA中用Set集合的TreeSet类对姓名和编号排序
- 提问者网友:杀生予夺
- 2021-04-30 01:37
- 五星知识达人网友:傲气稳了全场
- 2021-04-30 02:42
按编号的排序,compareTo比较一下就可以了:
import java.util.Iterator;
import java.util.TreeSet;
public class PriorityTest extends TreeSet<PriorityTest.Test>{
static class Test implements Comparable<Test>{
String name;
int num;
public Test(String name, int num) {
this.name = name;
this.num = num;
}
public int compareTo(Test arg) {
if(num < arg.num)
return 1;
else if(num > arg.num)
return -1;
else
return 0;
}
public String toString(){
return name;//Character.toString(arg0)
}
}
public void add(String str, int priority){
super.add(new Test(str,priority));
}
public static void main(String args[]){
PriorityTest pTest = new PriorityTest();
pTest.add("小明1",1);
pTest.add("小红3",3);
pTest.add("小张2",2);
for(Iterator iter = pTest.iterator();iter.hasNext();){
Object obj = iter.next();
System.out.println(obj);
}
}
}
- 1楼网友:鱼忧
- 2021-04-30 03:55
定义内部类. 至于里面怎么比较,就看具体的情况了,这里只随便比较一下name
public class Per{
private String name;
private class PerComparator implements Comparator
public int compareTo(Object obj1, Object obj2){
return ((Per)obj1.getName().hashCode()-(Per).getName().hashCode());
}
public String getName(){
return name;
}
}