我有一个ArrayList: A
,其中包含array
个类似这样的索引[[0,1],[4,5,6]]
。该列表是动态的,并且根据我之前进行的一些操作可能会增加
我还有2个相等大小的整数arraylists
,例如7
。像这样的东西:
B: [1,1,4,5,2,3,2]
和C: [3,3,4,5,6,6,6]
我需要帮助来分别比较arrayList: A
和B
中C
代表的索引处的元素
示例:
比较arrayList B中索引为[0,1]
的元素,并检查list.get[0] == list.get[1]
是否为[4,5,6]
并检查list.get[4] == list.get[5] == list.get[6]
与array list C
相同
任何帮助,不胜感激。预先感谢
答案 0 :(得分:0)
就像您要说的那样,将arraylist A
的值用作其他列表的索引:
示例 A = [0,1],B [3,3]
您需要检查:
B[0] == B[1]
但是将索引重写为A
的值,您将得到:
B[A[0]] == B[A[1]]
只需将其扩展到一般情况,就可以解决问题。
答案 1 :(得分:0)
static boolean checkIndex ( List<List<Integer>> indexList, List<Integer> listToCheck ){
for (List<Integer> indices : indexList) {
int val = listToCheck.get( indices.get(0) );
for (int i = 1; i < indices.size(); i++) {
int index = indices.get(i);
if ( listToCheck.get(index) != val ) {
return false;
}
}
}
return true;
}
我将循环所有索引列表,并检查另一个列表中相应索引的所有值。
测试
public static void main(String[] args) {
List<List<Integer>> indexList = new ArrayList<>();
indexList.add(Arrays.asList(0,1));
indexList.add(Arrays.asList(4,5,6));
System.out.println(indexList);
List<Integer> tempList = Arrays.asList(1,1,4,5,2,3,2);
List<Integer> tempList2 = Arrays.asList(3,3,4,5,6,6,6);
System.out.println(tempList);
System.out.println(checkIndex( indexList, tempList));
System.out.println(tempList2);
System.out.println(checkIndex( indexList, tempList2));
}
//输出
[[0, 1], [4, 5, 6]]
[1, 1, 4, 5, 2, 3, 2]
false
[3, 3, 4, 5, 6, 6, 6]
true