java菜鸟
有这样一堆数据输入
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 三个
这个算法怎么写啊 求解
[解决办法]
最笨的方法,遍历一下
[解决办法]
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()); } }}