高手快来帮帮忙,java 键值对 带重复值排序,万分感谢

ectime009 2010-01-10 06:55:53
java 键值对 带重复值排序,万分感谢
悬赏分:0 - 离问题结束还有 13 天 4 小时
key value
1 61
2 77
3 78
4 79
5 80
6 80
7 79
8 61

最后键值对排序存储后结果如下:按value排序,
key value
1 61
8 61
2 77
3 78
4 79
7 79
5 80
6 80

请把代码贴,非常感谢,新手,请大家多多关照
...全文
230 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ectime009 2010-01-11
  • 打赏
  • 举报
回复
你好,在麻烦你一下.我想判断ArrayList的重复值,如果重复就返回1,不重复就返回0.新手,万分感谢
ectime009 2010-01-11
  • 打赏
  • 举报
回复
不好意思,我能出来,太感谢你了
ectime009 2010-01-11
  • 打赏
  • 举报
回复
非常谢谢,如果我还想取出单独的排序好key,万分感谢,如何取呢
如: 1
8
2
3
4
7
5
6
huntor 2010-01-11
  • 打赏
  • 举报
回复
TreeSet<Pair> pairSet = new TreeSet<Pair>();


pairSet.add(Pair.valueOf(k,v));

最后得到一个排好序的集合
huntor 2010-01-11
  • 打赏
  • 举报
回复
ArrayList<Pair> data = new ArrayList<Pair>();
...; // get k v from input
data.add(Pair.valueOf(k,v));
...; //

Collections.sort(data);
ectime009 2010-01-11
  • 打赏
  • 举报
回复
你好,真的很感谢你,但还有一个问题忘了说明了,麻烦你在帮帮忙
Pair[] data = {Pair.valueOf(1,61),Pair.valueOf(2,77),Pair.valueOf(3,78),Pair.valueOf(4,79),
Pair.valueOf(5,80),Pair.valueOf(6,80),Pair.valueOf(7,79),Pair.valueOf(8,61)};


Pair.valueOf(4,79)这里的两个参数是有外面动态生成传进来的,而且不确定有多少组这样的键值对,你看我怎么才能循环生成这样的数组呀,感谢


huntor 2010-01-10
  • 打赏
  • 举报
回复
public class Pair implements Comparable<Pair> {
public final int key;
public final int value;

public Pair(int k,int v){
key = k;
value = v;
}

public int compareTo(Pair that){
if(value == that.value) return 0;
if(value < that.value) return -1;
return 1;
}

public String toString(){
return "[" + key + ":" + value +"]";
}

public static Pair valueOf(int k,int v){
return new Pair(k,v);
}

public static void main(final String[] args) {
Pair[] data = {Pair.valueOf(1,61),Pair.valueOf(2,77),Pair.valueOf(3,78),Pair.valueOf(4,79),
Pair.valueOf(5,80),Pair.valueOf(6,80),Pair.valueOf(7,79),Pair.valueOf(8,61)};
java.util.Arrays.sort(data);
for(Pair p:data)
System.out.println(p);
}
}
相关推荐
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2010-01-10 06:55
社区公告
暂无公告