arraylist에 추가하기 전에 arraylist에서 중복 요소를 찾아야합니다. 그러나 올바른 출력을 제공하지 않습니다. 컴파일과 실행 모두 오류가 발생하지 않습니다.
public class MyDuplicateEntry {
public static void main(String a[]) {
String[] strArr = {"one", "two", "three", "four", "four", "five"};
ArrayList<String> unique = new ArrayList<String>();
for (String str : strArr) {
if (!unique.add(str)) {
System.out.println("Duplicate Entry is: " + str);
}
}
}
}
java.util.ArrayList.add()
부울을 반환 하지만 항상 참이되도록 하드 코딩되어 있습니다.
요소가 이미 목록에 있으면 false를 반환한다고 가정 한 것 같습니다. 그렇지 않습니다.
수동으로 확인해야합니다.을 참조하십시오 ArrayList.contains()
.
public static void main(String a[]) {
String[] strArr = { "one", "two", "three", "four", "four", "five" };
ArrayList<String> unique = new ArrayList<String>();
for (String str : strArr) {
if (unique.contains(str)) {
System.out.println("Duplicate Entry is: " + str);
} else {
unique.add(str);
}
}
}
Set<String>
검사에 최적화되어 있으므로 대신 사용을 고려할 수도 있습니다 . contains()
간단한 HashSet<String>
.
이것은 최적화되었을뿐만 아니라, 요소가 이미 세트에있는 경우 false를 반환하므로 add의 반환 코드를 확인할 수 있음을 의미합니다.
public static void main(String a[]) {
String[] strArr = { "one", "two", "three", "four", "four", "five" };
HashSet<String> unique = new HashSet<String>();
for (String str : strArr) {
if (! unique.add(str)) {
System.out.println("Duplicate Entry is: " + str);
}
}
}
ArrayList.add()
항상 true를 반환하는 방법 에 대한 자세한 내용 은 javadoc을 참조하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다