首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java初学者

2012-08-13 
java菜鸟有这样一堆数据输入2,11,33,22,33,12,34,37,23,1输出:1,22,23,3就是说输入数据第二列为1时,对应2

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 三个

这个算法怎么写啊 求解

[解决办法]
最笨的方法,遍历一下
[解决办法]

Java code
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());        }    }} 

热点排行