【发布时间】:2019-04-30 04:47:45
【问题描述】:
我有一个数组列表,其值为{a,b,a,c,d,b,a}
我想对列表中的每个元素进行比较,并将common indexes 的pair 插入到List of array 或使用java 的东西中
示例输出:[[0,2,6], [1,4]]
解释:a 位于索引 0,2,6 和 b 位于索引 1,4
到目前为止,我有这个:
HashMap<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
List<String> name = new ArrayList<String>();
letter.add("a");
letter.add("b");
letter.add("c");
letter.add("b");
letter.add("a");
for (int i = 0; i < letter.size(); i++) {
for (int j = 1; j < letter.size(); j++) {
if (letters.get(i).equals(letters.get(j)) && i != j) {
hashMap.put(i, j);
}
}
}
System.out.println(hashMap); //o/p: {0=4, 1=3, 3=1}
List<int[]> myList = new ArrayList<int[]>();
Iterator entries = hashMap.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
Integer key = (Integer)entry.getKey();
Integer value = (Integer)entry.getValue();
myList.add(new int[] {key,hashMap.get(key)});
}
System.out.println(myList.toString());
//O/P: [[I@380fb434, [I@668bc3d5, [I@3cda1055]
更新:
这个想法是让 [[0,4],[1,3],[3,1]] 作为myList 中的元素,但我无法做到这一点。任何帮助深表感谢!谢谢!
基于上述索引数组,我想在这些索引处比较不同 List B 和 C 中的元素 - 意思是比较 List B and C 中索引 0,2,6 处的元素并检查是否全部三要素相等。索引1,4处的元素相同
【问题讨论】:
-
使用java内置的Comparator,Kinldy看看
-
你创建了一个新的 ArrayList 像 List
bList = new ArrayList (); -
@AdanVivero 我更新了问题。请检查并感谢您的回复