我想通過發現ArrayList中的類似項目位置來過濾ArrayList,以便我可以獲取重複項目的索引位置。在Java Arraylist中重複項目的索引
有了這樣一個清單:
List = ['A', 'B', 'A', 'C', 'E', 'A']
我希望它給我:
index [0, 2, 5] // A
index [1] // B
index [3] // C
index [4] // E
我想通過發現ArrayList中的類似項目位置來過濾ArrayList,以便我可以獲取重複項目的索引位置。在Java Arraylist中重複項目的索引
有了這樣一個清單:
List = ['A', 'B', 'A', 'C', 'E', 'A']
我希望它給我:
index [0, 2, 5] // A
index [1] // B
index [3] // C
index [4] // E
Map<Character, List<Integer>> indexes = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
indexes.computeIfAbsent(list.get(i), c -> new ArrayList<>()).add(i);
}
System.out.println(indexes);
// {A=[0, 2, 5], B=[1], C=[3], E=[4]}
char[] list = {'A', 'B', 'A', 'C', 'E', 'A'};
Map<Character, List<Integer>> indexes = new HashMap<>();
for (int i = 0; i < list.length; i++) {
if(indexes.get(list[i]) != null)
{
List<Integer> indexList=indexes.get(list[i]);
indexList.add(i);
indexes.put(list[i],indexList);
}
else
{
List<Integer> indexList = new ArrayList<>();
indexList.add(i);
indexes.put(list[i],indexList);
}
}
System.out.println(indexes);
// {E=[4], A=[0, 2, 5], B=[1], C=[3]}
這麼多冗餘的代碼。在循環中你需要的是:'List
謝謝你們,它實際上工作! –
到目前爲止,你已經嘗試過什麼? – Meenal
我試圖檢查並找到重複的項目,並將其放入不同的數組中,然後使用這些值逐個刪除重複項並再次搜索。如果值1(來自重複數組)與當前索引的值相匹配//在這裏做一些事情,但可悲的是,如果這裏的語句只運行一次,則不起作用 –
分享您的代碼.. – Meenal