지도를 사용하여이 시나리오에 가장 효율적이며 효과적인 방법을 찾으려고합니다. 그것은 배열이어야합니다. 이것을 설명하기 위해 모범을 보였습니다.일부 조건을 기반으로지도에서 배열을 반환하는 가장 빠르고 가장 빠른 방법
기본적으로 몇 가지 sandwhich id 및 sandwhich 세부 정보로 구성된지도가 있고 나는 단지 상추가있는 배열 만 배열에 있어야합니다.
배열의 문제점은 크기를 알아야한다는 것입니다.이 경우에는 양상치가있는 샌드위치가 몇 개인 지 알 수 없습니다. 배열 목록을 사용할 수는 있지만 배열로 변환해야합니다.이 방법은 비효율적 인 복사 방법입니다.
예 :
//Assume that this map is given
Map<Integer, Sandwich> sandwiches = //some method gets all sandwiches
Meal[] meal = new Meal[sandwiches.size()];
for(Map.Entry<Integer, Sandwich> e : sandwiches.entrySet())
{
if(e.getValue().hasLettuce())
meal = new Meal(e.getValue);
}
//mandatory: An array must be returned
return meal;
나는'sandwiches.entrySet()'을 의미 할 것입니다 ... – Makoto
'Map'은 언제 hasLettuce 필드를 가지고 있습니까? :) – Zong
@ Zong Zheng Li 오늘부터 : 그것을 지적 해 주셔서 감사합니다. Makota도 감사합니다. 코드 조각을 편집했습니다. – Mercury