4.3.16 컬렉션 셀렉션 by ks

셀렉션은 항목에서 선택하여 소스 모음을 다른 모음으로 변환 할 수있는 강력한 표현 언어 기능이다. 셀렉션은 .?[selectionExpression]의 신택스를 사용한다. 컬렉션을 필터하고 원래 요소의 서브셋을 포함하는 새로운 컬렉션을 반환한다. 예를 들어서, 셀렉션은 우리가 아래 예제처럼 Serbian inventors의 리스트를 쉽게 얻게끔 해준다.

List<Inventor> list = (List<Inventor>) parser.parseExpression(
        "Members.?[Nationality == 'Serbian']").getValue(societyContext);

셀렉션은 리스트와 맵 둘다 가능하다. 리스트에서 셀렉션 기준은 각각 개인의 리스트 요소에 대하여 평가된다. 맵에서, 셀렉션 기준은 (자바타입 Map.Entry의 오브젝트인) 각 맵 엔트리에 대해 평가된다. 각 맵 엔트리는 셀렉션의 사용을 위한 프로퍼티에 접근할 수 있도록 key와 value를 가진다.

다음 표현식은 입력 값이 27보다 작은 원래 맵의 요소로 구성된 새 맵을 리턴한다.

Map newMap = parser.parseExpression("map.?[value<27]").getValue();

게다가 모든 셀렉트된 요소를 반환하여 오직 첫번째나 마지막 값을 추출할 수 있다. 셀렉션에 매칭하는 첫 엔트리를 얻기위해, 신택스는 .^[selectionExpression]이다. 마지막 매칭 셀렉션을 얻기위해 신택스는 .&[selecionExpression]이다.

Last updated