자바에서는 N 개의 항목 모음을 각각 하나의 항목으로 이루어진 N 개의 모음으로 변환하는 쉽고 편리한 방법이 있습니까? 나는 수동으로 컬렉션의 각 항목을 거쳐 새로운 컬렉션으로 복사하는 것 이외의 의미입니다.N 개의 항목 모음을 각각 1 개의 N 개의 모음으로 변환 하시겠습니까?
답변
여기에 자바 8 l1
에서 하나 개의 문장으로 그것을 할 수있는 방법 몇 가지 Collection<T>
이며, 결과는 각 ArrayList<T>
컬렉션에서 하나 개의 요소를 포함하는 List<ArrayList<T>>
이다.
- 콜렉션의 모든 엘리먼트를 생성
Stream
;List<ArrayList<T>> l2 = l1.stream().map(x -> new ArrayList<>(Arrays.asList(x))).collect(Collectors.toList());
것은 이것이 세분화
- 각 요소를 해당 요소가 포함 된
ArrayList
으로 매핑합니다. ArrayList
을List<ArrayList>
으로 수집합니다.
OP가 모른다는 경우 : 그러한 코드는 Java 8에서만 작동합니다. –
아직 자바 6이 붙어 있습니다.하지만 자바 8에서 새로이 가능한 것을 배우는 것이 좋습니다. 감사합니다. –
당신은 구아바를 사용하고자하는 경우처럼 보이는 Function < E, 목록 < E >> 수 : 그런 다음 Collections2의 변환 방법 중 하나를 사용할 수 있습니다
public final class ItemToListFunction<E> implements Function<E, List<E>>
{
public List<E> apply(E input)
{
//if it does not need to be mutable
return Collections.singletonList(input);
//if it does need to be mutable
final List<E> list = new ArrayList<E>();
list.add(input);
return list;
}
}
을, Lists 또는 Iterables 이 방법의 장점은 요소에 대한 실제 반복까지 내부 목록 생성이 지연된다는 것입니다.
표준 Java 6 구문 만 사용할 수 있습니다. 그러나 대안을 아는 것이 좋습니다. 감사. –
- 1. 디스플레이는 변수 값 각각 n 개의 반복
- 2. SQL Server 2008 : N 개의 작은 데이터베이스 N 개의 스키마가있는 VS 1 개의 데이터베이스
- 3. n 개의 레코드를 반환하는 1 개의 쿼리와 1 개의 레코드를 반환하는 n 개의 쿼리의 성능 차이는 무엇입니까? 아마존 SimpleDB와 관련하여
- 4. n 개의 파일에서 n 개의 열로 목록을 출력합니다.
- 5. 테이블에서 상위 N 개의 행 선택 N
- 6. N 개의 목록 순열
- 7. N 개의 인수를 취하여 N 개의 값을 반환하는 고성능 솔루션
- 8. n 개의 문자열 조합
- 9. 테이블에 최신 n 개의 항목 유지
- 10. 액티브 내가 n 개의 관계에 1 개의 모델을 가지고
- 11. Hibernate에서 n 개의 테이블을 1 개의 클래스로 런타임 단방향 매핑
- 12. n 개의 목록 교차점
- 13. n 개의 배열 만들기
- 14. 반환 n 개의
- 15. 목록의 n 개의 항목 중 하나의 섹션
- 16. 모든 조합 n 개의 목록으로 된 항목
- 17. N + 1 개의 연속적인 숫자의 LCM
- 18. 레일 : N + 1 개의 쿼리가 생성됩니다.
- 19. n 개의 r 요소 중 순열 변환
- 20. TreeMap을 n 개의 항목으로 트리밍
- 21. asp.net에서 (n-1) 개의 특수 문자를 포함하여 n 개의 숫자를 인쇄하는 방법은 무엇입니까?
- 22. n 개의 숫자의 모든 조합
- 23. 여러 개의 n : m 절
- 24. n 개의 숫자 모드 찾기
- 25. tkinter에 n 개의 창을 만듭니다.
- 26. N 개의 항목을 그룹화하는 방법?
- 27. 파이썬에서 n 개의 문자열 생성
- 28. 빠른 곱셈은 n 개의 모듈로
- 29. C에서 N 개의 스레드 만들기
- 30. 더 빠릅니다 : n 개의 요소를 정렬하거나 n 개의 요소를 올바른 위치에 하나씩 삽입 하시겠습니까?
물론입니다. ['Collection'] (http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)은 ['Iterable']을 구현합니다 (http://docs.oracle.com/javase). /7/docs/api/java/lang/Iterable.html) 및 ['add()'] (http://docs.oracle.com/javase/7/docs/api/java/util/Collection)이 있습니다. html # add (E)) 메소드를 호출합니다. 모든 구현은 인수가없는 생성자를 제공합니다. 아무것도 당신의 작업을 수행하는 데 필요한 것으로 보인다. 실용적인 목적이 있습니까? –
글쎄, N 개의 컬렉션을 일종의 컬렉션에 배치해야하기 때문에, 당신이 가지고있는 것을보고 "완료!"라고 말할 수있는 것처럼 보입니다. –
이 질문은 [코드 검토에 대한 질문] (http://codereview.stackexchange.com/q/57873/31503)을 생성했습니다. – rolfl