목록 또는 세트의 첫 번째 요소를 얻는 방법
목록 또는 세트의 첫 번째 요소를 얻을 수 있는지 알고 싶습니다.어떤 방법을 사용할까요?
javadoc 참조
list.get(0);
또는 설정
set.iterator().next();
위 방법을 사용하기 전에 크기를 확인합니다.isEmpty()
!list_or_set.isEmpty()
Collection c;
Iterator iter = c.iterator();
Object first = iter.next();
(이것은, 「최초의」요소에 가장 가까운 것입니다.Set
대부분의 구현에는 전혀 의미가 없다는 것을 깨달으셔야 합니다.Set
Linked Hash Set 및 Tree Set에는 의미가 있을 수 있지만 Hash Set에는 의미가 없습니다.)
Java > = 8에서는 스트리밍 API를 사용할 수도 있습니다.
Optional<String> first = set.stream().findFirst();
(만약 Set/List은 비어 있을 수 있는데 유용한).
"방금이 있다고 가정하자List<String> strings
당신의 첫번째 항목을 원한다.
몇가지 방법이 그것을 할: 있다.
자바(pre-8):
String firstElement = null;
if (!strings.isEmpty() && strings.size() > 0) {
firstElement = strings.get(0);
}
자바 8시
Optional<String> firstElement = strings.stream().findFirst();
궈바
String firstElement = Iterables.getFirst(strings, null);
아파치 공유지(4+)
String firstElement = (String) IteratorUtils.get(strings, 0);
아파치 공유지(4전에)
String firstElement = (String) CollectionUtils.get(strings, 0);
에 의해 혹은 적절한 검사나 try-catch 블록 안에 캡슐화 줍니다.
코틀린:
코틀린에 발열과 모음의 대부분(즉 유효:목록)a다first
메서드 호출.그래서 코드를 이렇게 생겼을 것이다.
한 목록:
val stringsList: List<String?> = listOf("a", "b", null)
val first: String? = stringsList.first()
한 정열은:
val stringArray: Array<String?> = arrayOf("a", "b", null)
val first: String? = stringArray.first()
이어서 적절한 체크 또는 트라이캐치 블록으로 캡슐화됩니다.
또한 Kotlin은 이를 위해 안전한 방법을 제공합니다.kotlin.collections
예를 들어 또는 getOrElse, 또는 getOrDefault을 사용하여firstOrNull.JRE8
아직 guava 솔루션을 제안하지 않은 것이 놀랍습니다.
com.google.common.collect.Iterables.get(collection, 0)
// or
com.google.common.collect.Iterables.get(collection, 0, defaultValue)
// or
com.google.common.collect.Iterables.getFirst(collection, defaultValue)
또는 단일 요소가 필요한 경우:
com.google.common.collect.Iterables.getOnlyElement(collection, defaultValue)
// or
com.google.common.collect.Iterables.getOnlyElement(collection)
Java8 이후
Set<String> set = new TreeSet<>();
set.add("2");
set.add("1");
set.add("3");
String first = set.stream().findFirst().get();
이렇게 하면 목록 또는 세트의 첫 번째 요소를 검색할 수 있습니다.세트 또는 목록이 비어 있지 않은 경우(get()
아무렇게나 던져버리다java.util.NoSuchElementException
)
orElse()
(이는 회피책일 뿐 권장하지 않습니다)
String first = set.stream().findFirst().orElse("");
set.removeIf(String::isEmpty);
다음은 적절한 접근법입니다.
Optional<String> firstString = set.stream().findFirst();
if(firstString.isPresent()){
String first = firstString.get();
}
마찬가지로 목록의 첫 번째 요소를 가져올 수 있습니다.
이게 도움이 됐으면 좋겠다.
세트
set.toArray()[0];
목록.
list.get(0);
이 질문에 대한 정확한 답변은 아니지만 SortedSet에 first() 메서드가 있습니다.
SortedSet<String> sortedSet = new TreeSet<String>();
sortedSet.add("2");
sortedSet.add("1");
sortedSet.add("3");
String first = sortedSet.first(); //first="1"
정렬된 개체는 비교 가능한 인터페이스를 구현해야 합니다(String처럼).
get(index) 메서드를 사용하여 목록에서 요소에 액세스할 수 있습니다.
집합은 정의상 요소를 포함할 뿐 특별한 순서가 없습니다.따라서 얻을 수 있는 '첫 번째' 요소는 없지만 반복기를 사용하여 반복하거나(각 루프에 대해 를 사용), toArray() 메서드를 사용하여 배열로 변환할 수 있습니다.
언급URL : https://stackoverflow.com/questions/8882295/how-to-get-the-first-element-of-the-list-or-set
'programing' 카테고리의 다른 글
Vuex를 올바르게 테스트하는 방법 (0) | 2022.06.26 |
---|---|
도대체 봄콩이란 무엇일까요? (0) | 2022.06.26 |
준비된 문장에서 "좋아요" 와일드카드 사용 (0) | 2022.06.26 |
Vue 2에 css 파일을 포함하는 방법 (0) | 2022.06.26 |
Windows에서 JAR 파일 실행 (0) | 2022.06.26 |