제가 알고있는 콜렉션의 오브젝트를 얻고 싶습니다 (기본적으로는 Collections.singletonList()
의 반대입니다). 그러나 콜렉션이리스트/세트인지 여부는 모르겠습니다. 뭔가 다른 그래서 나는 c.get(0)
를 사용할 수 없습니다). 현재 내가 c.iterator.next()
사용싱글 톤 콜렉션의 오브젝트 얻기
는 자바에서 그 또는 공용 라이브러리 중 하나에 대한 방법은 이미 (아파치 - 평민, 구아바 등)
제가 알고있는 콜렉션의 오브젝트를 얻고 싶습니다 (기본적으로는 Collections.singletonList()
의 반대입니다). 그러나 콜렉션이리스트/세트인지 여부는 모르겠습니다. 뭔가 다른 그래서 나는 c.get(0)
를 사용할 수 없습니다). 현재 내가 c.iterator.next()
사용싱글 톤 콜렉션의 오브젝트 얻기
는 자바에서 그 또는 공용 라이브러리 중 하나에 대한 방법은 이미 (아파치 - 평민, 구아바 등)
Iterables.getOnlyElement()
(또는 컬렉션이 비어있을 수있는 경우 Iterables.getFirst()
) 구아바.
메소드 서명과 JavaDoc가 있는지 궁금해 명확하게 그것이라고 List
.
이
는 서명입니다 :public static <T> List<T> singletonList(T o)
그리고 이것은 JavaDoc을이다 :
가 지정된 오브젝트만을 포함하고있는 불변의리스트를 돌려줍니다. 반환되는리스트는 직렬화 가능합니다.
그래서, 이것은 당신이 간단하게 사용할 수 있다는 것을 의미한다 :
List<MyClass> singleton = Collections.singletonList(myObject);
MyClass obj = singleton.get(0);
아야, 지금 나는 당신이 무슨 뜻인지 참조하십시오. 나는 당신의 질문이 분명하다는 것을 인정해야합니다. 그러나 하나 또는 다른 이유로, 나는 이해하지 못했다 :
. 그들은 그것이하는 일의 역전을 원합니다 : 어떤 Collection으로부터 하나의 요소를 추출하십시오. –
데이비드 말이 맞다. 내가 충분히 명확하게 설명하지 못해서 미안하다. – Alex
자바 8로 당신은 할 수 있습니다 : 영업 실제로`singletonList`를 사용하지 않는
collection.stream().findAny().get();
을 사용하여 'collection.iterator()에 대한이 솔루션의 벤치 마크를 보니 흥미로울 것입니다. .next()' – Beethoven
2016/9/16 현재 링크가 깨져있다. https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/Iterables.html – Beethoven