여기에 표시되는 해시 맵이 있습니다.해시 맵에서 가장 큰 값을 찾는 가장 좋은 방법은 다음과 같습니다. <Arraylist, Arraylist>
HashMap<ArrayList<Integer>,ArrayList<String>>
나는 두 번째의 ArrayList에서 가장 큰 길이() (값)
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까와의 ArrayList를 찾으려면?
여기에 표시되는 해시 맵이 있습니다.해시 맵에서 가장 큰 값을 찾는 가장 좋은 방법은 다음과 같습니다. <Arraylist, Arraylist>
HashMap<ArrayList<Integer>,ArrayList<String>>
나는 두 번째의 ArrayList에서 가장 큰 길이() (값)
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까와의 ArrayList를 찾으려면?
할 수 있습니다 돌이지도의 values()
: 당신이했을의 HashMap에있는 ArrayLists 일단
ArrayList<Integer> maxKey = null;
int maxLen = 0;
for (Entry<ArrayList<Integer>, ArrayList<String>> e : map.entrySet()) {
int len = e.getValue().size();
if (maxKey == null || len > maxLen) {
maxKey = e.getKey();
maxLen = len;
}
}
'map.values ()'의 마지막 ArrayList가'null' 인 경우 다른 것이 실제 크기 일지라도 가장 길다는 것이 'null'이라고합니다. 아마도 if 문은'if (max! = null && list.size()> max.size())' – wlyles
@wlyles 중 하나가 'null'이라면'list.size()'이 호출됩니다. OP가 맵에서 null 값을 갖고 있다면 (실제로는 안된다), 그는이 접근법을 쉽게 체크 할 수있다. 그러나 기본 개념은 동일하게 유지됩니다. – arshajii
가장 큰 길이의 ArrayList로 키를 찾아야한다면 어떻게해야할까요? – AKS
:
ArrayList<String> max = null;
for (ArrayList<String> list : map.values()) {
if (max == null || list.size() > max.size())
max = list;
}
키가 가장 큰 값과 연관된하려면 가장 큰 길이의 것을 찾도록 그들을 열거하십시오. 그러나 SortedMap 인터페이스를 사용하여 키를 각 배열 목록의 길이로 추가 색인으로 사용할 수 있으며 마지막 색인을 매우 효율적으로 언제든지 선택할 수 있습니다.
지도의 entrySet을 반복해야합니다. ArrayLists 값이 정렬되면 마지막 요소를 볼 수 있습니다. 그렇지 않으면 모든 요소를 하나씩 확인해야합니다. – Kon