我怎样才能检测(返回true/false)ArrayList是否包含Java中的多个相同元素?
非常感谢,特里
编辑 忘了提到我不打算将"块"相互比较,但是它们的整数值.每个"块"都有一个int,这就是它们的不同之处.我通过调用名为"getNum"的方法找到特定块的int(例如table1 [0] [2] .getNum();
可能重复:
防止arraylist中的重复条目
我有一个特定班级C的arraylist.
List<C> myList = new ArrayList<C>();
Run Code Online (Sandbox Code Playgroud)
C类有两个属性即.
String str1;
String str2;
Run Code Online (Sandbox Code Playgroud)
现在,当我将类型C的对象添加到ArrayList myList时,我想检查列表中是否已存在一个对象,其中str1和str2的值与对象的参数(str1和str2)的值相匹配我即将补充.
有没有有效的方法来做到这一点,而不必每次遍历完整列表并检查参数之间的匹配?
我有一个字符串数组,它包含字符串列表.我想弄清楚这个列表中是否有任何重复的条目.基本上我有一个用户列表,应该没有重复的条目.
我发现了两种从字符串数组中找到重复值的方法.
第一种方式:
private static String FindDupValue(String[] sValueTemp) {
for (int i = 0; i < sValueTemp.length; i++) {
String sValueToCheck = sValueTemp[i];
if(sValueToCheck==null || sValueToCheck.equals(""))continue;
for (int j = 0; j < sValueTemp.length; j++) {
if(i==j)continue;
String sValueToCompare = sValueTemp[j];
if (sValueToCheck.equals(sValueToCompare)){
return sValueToCompare;
}
}
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
第二种方式:
private static String FindDupValueUsingSet(String[] sValueTemp) {
Set<String> sValueSet = new HashSet<String>();
for(String tempValueSet : sValueTemp) {
if (sValueSet.contains(tempValueSet))
return tempValueSet;
else
if(!tempValueSet.equals(""))
sValueSet.add(tempValueSet);
}
return "";
}
Run Code Online (Sandbox Code Playgroud)
两种方法都是正确的.
我的问题是哪种方法最好,为什么?或者有没有其他最好的方法来找出数组的重复值?
可能重复:
Java数组,查找重复项
我有这个数组
int[][] array = {{1,2,3,4}, {5,6,2,8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
Run Code Online (Sandbox Code Playgroud)
如果此数组中有重复的元素,我需要返回false.例如,索引[0] [1]和[1] [2]是相等的.我需要一种方法来检测这个.如果解决方案仅使用基元,数组和循环,那也很好.