내가 다른 크기의 두 개의 문자열 ArrayLists 있습니다. 목록 A (큰 목록)에 목록 B (작은 목록)의 모든 값이 포함되어 있으면 true를 반환하는 메서드를 작성해야합니다. 그런 방법을 쓰려면 어떻게해야합니까? 감사합니다.
-1
A
답변
3
List.containsAll()
을 살펴보십시오.
경우에 따라 설명서를 엿볼 수 있습니다 (숙제도 가능).
2
목록 대신 세트를 사용해야하는 것 같습니다. 목록에서이 작업을 수행하면 O(N^2)
이되는 반면 HashSet 또는 TreeSet은 O(N)
또는 O(NlogN)
이됩니다.
성능에 큰 문제가없는 경우 (목록이 비교적 작거나 자주 수행하지 않는 경우) 적절한 목록 개체에서 containsAll
메서드를 사용하면됩니다.
0
public boolean containsAll(List<String> listA, List<String> listB) {
Set<String> listAAsSet = new HashSet<String>(listA);
for (String string : listB) {
if(listAAsSet.contains(string)==false) {
return false;
}
}
return true;
}
당신은 List.containsAll()
:
0
아마 더 효율적인 방법이있어 사용하지만, 당신이 할 수있는 일은 작은을 통해 루프 큰 목록을 반복하고, 큰 목록의 모든 요소의 수 명부. 찾지 못하면 조그마한 목록에서 빠져 나온다. 찾지 못하면 거짓을 돌려 준다.
bool found = false;
for (string a : listA)
{
found = false;
for (string b : listB)
{
if (b.equals(a))
{
found = true;
break;
}
}
if (!found)
return false;
}
return true;
+0
다른 데이터 구조로 변환하지 않는 한 더 효율적인 방법은 없습니다. –
관련 문제
- 1. 배열 Arraylists
- 2. arraylists 및 다형성
- 3. Arraylists 및 Flatfile 데이터베이스
- 4. Parceable ArrayLists (Android)
- 5. Java의 ArrayLists 사전
- 6. 비교 유효성 검사기를 사용하여 두 날짜 비교
- 7. 두 번 비교
- 8. 두 개의 NSMutableDictionaries 비교
- 9. 두 언어 문자열 비교
- 10. AS3 두 함수 비교
- 11. 두 문자열 비교 문제 ...!
- 12. 비교 두 RouteValueDictionary 인스턴스
- 13. 두 기능의로드/성능 비교
- 14. 두 개의 JSON 비교
- 15. 두 문자열 C# 비교?
- 16. 두 Excel 시트 비교
- 17. 두 벡터 이미지 비교
- 18. django의 두 필드를 비교
- 19. 두 배열 비교
- 20. 두 목록 비교
- 21. 두 파일 비교
- 22. 두 CGPDFDictionary 비교
- 23. 두 함수의 비교 방법
- 24. 두 개의 음파 비교
- 25. 두 개 비교 NSMutableArray
- 26. 두 변수의 비교
- 27. 두 arraylist 자바에서 비교
- 28. 두 문자열 비교
- 29. 두 바이너리 파일 비교
- 30. QuickFIXJ의 두 FixMessages 비교
숙제가 있습니까? 에서와 마찬가지로 API에서 무언가를 사용하는 대신 자신의 솔루션을 작성해야합니까? – Makoto
두 개의 for 루프는 각 목록을 반복합니다. 그러나 매번 매치 할 때마다 (심지어 전체 목록을 확인하지 못했을 때도 마찬가지입니다.) 각 요소에 대해 체크 booleans를 설정하려고했지만 체크를 확인하는 방법을 찾을 수 없었습니다. –
이것은입니다. 내 자신의 프로그램을 위해서. 숙제가 아님 –