Fra*_*rds 5 collections optional java-8
是否有更简洁的方法来检查值是否存在于特定索引处,例如list.getOrDefault(index, "defaultValue"). 或者甚至在特定索引超出列表范围时执行默认操作。
执行此操作的正常方法是在尝试此操作之前检查列表的大小。
默认List界面没有这个功能。有Iterables.get在番石榴:
Iterables.get(iterable, position, defaultValue);
Run Code Online (Sandbox Code Playgroud)
返回元件在指定位置
iterable或defaultValue如果iterable包含不是较少position + 1的元件。
IndexOutOfBoundsException如果position为负则抛出。
如果这是您打算大量使用的功能并且不能依赖第三方库,您可以编写自己的静态方法(此处受 GuavaLists类的启发):
public class Lists {
public static <E> E getOrDefault(int index, E defaultValue, List<E> list) {
if (index < 0) {
throw new IllegalArgumentException("index is less than 0: " + index);
}
return index <= list.size() - 1 ? list.get(index) : defaultValue;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3317 次 |
| 最近记录: |