我想知道我是否能得到一个列表或集合的第一个元素。使用哪种方法?
当前回答
Set
set.toArray()[0];
List
list.get(0);
其他回答
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();
}
同样,可以检索列表的第一个元素。
希望这能有所帮助。
这不是这个问题的确切答案,但如果对象应该排序SortedSet有一个first()方法:
SortedSet<String> sortedSet = new TreeSet<String>();
sortedSet.add("2");
sortedSet.add("1");
sortedSet.add("3");
String first = sortedSet.first(); //first="1"
排序对象必须实现Comparable接口(就像String那样)
Collection c;
Iterator iter = c.iterator();
Object first = iter.next();
(这是最接近Set的“第一个”元素。您应该意识到,对于Set的大多数实现来说,它绝对没有任何意义。这可能对LinkedHashSet和TreeSet有意义,但对HashSet没有意义。)
请看javadoc
的列表
list.get(0);
或一组
set.iterator().next();
并在使用上述方法之前通过调用isEmpty()检查大小
!list_or_set.isEmpty()
可以使用get(index)方法访问List中的元素。
根据定义,集合只是包含元素,没有特定的顺序。因此,您无法获得“first”元素,但可以使用迭代器(使用for每个循环)遍历它,或使用toArray()方法将其转换为数组。
推荐文章
- Eclipse调试器总是阻塞在ThreadPoolExecutor上,没有任何明显的异常,为什么?
- Java生成两个给定值之间的随机数
- 如何有效地从数组列表或字符串数组中删除所有空元素?
- 比较JUnit断言中的数组,简洁的内置方式?
- 在每个列表元素上调用int()函数?
- codestyle;把javadoc放在注释之前还是之后?
- 如何在Spring中定义List bean ?
- 将Set<T>转换为List<T>的最简洁的方法
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用Java重命名文件
- URL从Java中的类路径加载资源
- .toArray(new MyClass[0]) or .toArray(new MyClass[myList.size()])?
- Hibernate中不同的保存方法之间有什么区别?
- Java 8流和数组操作
- 在Python中插入列表的第一个位置