重复key排序,请问用什么样的容器 有两个列,一个No列,一个数据列。按照No列进行排序,但这个列的值是可能重复的,比如No 数据1 1111 1122 2222 2233 3334 444请问用什么数据结构可以支持重复的key排序。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是按No排序,No相同再按数据排序吗? 这就是按多个关键字排序.下面用自定义排序,package yangyang.com;import java.util.Comparator;import java.util.ArrayList;import java.util.Collections;class PrimaryKey { int key1; int key2; PrimaryKey(int key1, int key2) { this.key1 = key1; this.key2 = key2; } public String toString() { return "(" + this.key1 + "," + this.key2 + ")"; }}class Comp implements Comparator { public int compare(Object o1, Object o2) { PrimaryKey p1 = (PrimaryKey) o1; PrimaryKey p2 = (PrimaryKey) o2; if (p1.key1 < p2.key1) return 0; else if (p1.key1 > p2.key1) return 1; else if (p1.key2 <= p2.key2) return 0; else return 1; }}public class Check { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ArrayList list = new ArrayList<PrimaryKey>(); list.add(new PrimaryKey(1, 111)); list.add(new PrimaryKey(1, 112)); list.add(new PrimaryKey(3, 333)); list.add(new PrimaryKey(3, 339)); list.add(new PrimaryKey(2, 222)); Comparator comp = new Comp(); Collections.sort(list, comp); for (int i = 0; i < list.size(); i++) { PrimaryKey p = (PrimaryKey) list.get(i); System.out.println(p); } }} 直接使用TreeMap自动按照key来排序 文件分发问题 线程求助 一个很简单的正则表达式问题 求救:如何在一个类中调用servlet 拜求高手:jdbc读取大量数据,如何批量读取? 向各位大大门请教,JAVA static final 类型的数据成员如何初始化? 如何完整的输出除法的结果,包括整数和小数位? 问大家一个关于AppletViewer问题!急,在线等待! 我在非技术区里面提了这个问题,但是两天了都没有人看,所以来这里提一下.麻烦各位了。 如何写文件(要求写数字占一个字节,英文用ASCII编码,中文用Unicode编码) 那里有哪有THINKING IN JAVA2的书后练习答案下载
下面用自定义排序,
package yangyang.com;import java.util.Comparator;
import java.util.ArrayList;
import java.util.Collections;
class PrimaryKey {
int key1; int key2; PrimaryKey(int key1, int key2) {
this.key1 = key1;
this.key2 = key2;
} public String toString() {
return "(" + this.key1 + "," + this.key2 + ")";
}
}
class Comp implements Comparator {
public int compare(Object o1, Object o2) {
PrimaryKey p1 = (PrimaryKey) o1;
PrimaryKey p2 = (PrimaryKey) o2;
if (p1.key1 < p2.key1)
return 0;
else if (p1.key1 > p2.key1)
return 1;
else if (p1.key2 <= p2.key2)
return 0;
else
return 1;
}
}public class Check {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList list = new ArrayList<PrimaryKey>();
list.add(new PrimaryKey(1, 111));
list.add(new PrimaryKey(1, 112));
list.add(new PrimaryKey(3, 333));
list.add(new PrimaryKey(3, 339));
list.add(new PrimaryKey(2, 222));
Comparator comp = new Comp();
Collections.sort(list, comp);
for (int i = 0; i < list.size(); i++) {
PrimaryKey p = (PrimaryKey) list.get(i);
System.out.println(p);
}
}
}
自动按照key来排序