我有一个方法可以检查 ArrayList 中的重复值,我希望它返回那些包含重复值的 EzVarIntegers 的名称(包含名称和值以及目前不相关的其他内容)。
我正在考虑并排使用两个数组,它们的名称为 EzVarIntegers,并且同一索引上有重复值。因此具有相同值 X 的两个 EzVarIntegers 将位于 ArrayOne[k] 和 ArrayTwo[k] 中。
我对此很陌生,所以我想知道是否有更聪明的方法来处理这个问题?
public ArrayList<String> dupCheck(ArrayList<EzVarInteger> RoiNumbs) {
ArrayList<String> Dups = new ArrayList<String>();
for (int j=0;j<RoiNumbs.size();j++) {
for (int k=j+1;k<RoiNumbs.size();k++) {
if (k!=j && RoiNumbs.get(k).getValue() == RoiNumbs.get(j).getValue()) {
//TODO see question
}
}
}
return Dups;
}
最佳答案
尝试使用 map (参见示例)
public static void main(String[] args)
{
List<String> strings = new ArrayList<>();
strings.add("a");
strings.add("b");
strings.add("a");
strings.add("c");
Map<String, Integer> counts = new HashMap<>();
for (String str : strings)
{
if (!(counts.containsKey(str)))
{
counts.put(str, 1);
}
}
for (Map.Entry<String, Integer> entry : counts.entrySet())
{
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
关于java - 成对字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48932177/