LinkedHashSet造成的,你用ArrayList就是你要的结果。

解决方案 »

  1.   

    ...这好象是我刚才写的那个...value我定义成了set,所以addAll的时候重复的部分就去掉了,你不希望去掉重复的,就换成ArrayList
      

  2.   

    这个对了是因为LinkedHashSet造成的,他存放的内容不可以重复。
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Hashtable;
    import java.util.Iterator;
    import java.util.LinkedHashSet;
    import java.util.List;public class Cast { public static void main(String[] args) {
    List listA = new ArrayList();
    List listB = new ArrayList();
    Object[] objectc = new Object[] { "aa", "123", "542" };
    Object[] objecte = new Object[] { "ww", "524", "865" };
    Object[] objecth = new Object[] { "qq", "458", "632" };
    Object[] objectp = new Object[] { "gg", "758", "632" };
    listA.add(objectc);
    listA.add(objecte);
    listA.add(objecth);
    listA.add(objectp);
    Object[] objectq = new Object[] { "gg", "632", "751" };
    Object[] objectb = new Object[] { "aa", "123", "123" };
    Object[] objecty = new Object[] { "gg", "952", "156" };
    listB.add(objectq);
    listB.add(objectb);
    listB.add(objecty);
    Hashtable<String, ArrayList<Object>> ht = new Hashtable<String, ArrayList<Object>>();
    for (int i = 0; i < listA.size(); i++) {
    Object[] ss = (Object[]) (listA.get(i));
    ArrayList<Object> set = new ArrayList<Object>();
    set.addAll(Arrays.asList(ss));
    ht.put((String) ss[0], set);
    }
    for (int i = 0; i < listB.size(); i++) {
    Object[] ss = (Object[]) (listB.get(i));
    ArrayList<Object> set = new ArrayList<Object>();
    set.addAll(Arrays.asList(Arrays.copyOfRange(ss, 1, ss.length)));
    if (ht.get((String) ss[0]) != null) {

    ArrayList<Object> value = ht.get(ss[0]);
    value.addAll(set);
    ht.put((String) ss[0], value);
    } else {
    ht.put((String) ss[0], set);
    }
    }
    Iterator it = ht.keySet().iterator();
    while (it.hasNext()) {
    String key = (String) (it.next());
    ArrayList value = ht.get(key);
    Iterator it1 = value.iterator();
    while (it1.hasNext()) {
    System.out.print(it1.next() + " ");
    }
    System.out.println();
    } }
    }