java菜鸟

wccwccwcw 2012-05-10 03:52:07
有这样一堆数据输入
2,1
1,3
3,2
2,3
3,1
2,3
4,3
7,2
3,1

输出:
1,2
2,2
3,3

就是说输入数据第二列为1时,对应2 3 3 有两个数字2和3
第二列为2时,对应3 7 两个
第二列为3时,对应1 2 2 4 三个

这个算法怎么写啊 求解
...全文
71 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mourinho 2012-05-10
  • 打赏
  • 举报
回复

import java.util.HashSet;
import java.util.TreeMap;


public class Test {

public static void main(String[] args) {
int[] arr1 = new int[]{2,1,3,2,3,2,4,7,3};
int[] arr2 = new int[]{1,3,2,3,1,3,3,2,1};
TreeMap<Integer, HashSet<Integer>> map = new TreeMap<Integer, HashSet<Integer>>();
HashSet<Integer> set = new HashSet<Integer>();
for(int i = 0;i < arr2.length;i++){
set = new HashSet<Integer>();
if(map.containsKey((Integer)arr2[i])){
set = map.get((Integer)arr2[i]);
set.add(arr1[i]);
map.put(arr2[i], set);
}else {
set.add(arr1[i]);
map.put(arr2[i], set);
}
}
Integer[] keyArr = new Integer[map.size()];
map.keySet().toArray(keyArr);
for(int i = 0;i < map.size();i++){
System.out.println(keyArr[i] + "," + map.get(keyArr[i]).size());
}
}

}

llbupt 2012-05-10
  • 打赏
  • 举报
回复
最笨的方法,遍历一下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧