是否有更简洁的方法来检查特定索引(例如list.getOrDefault(index, "defaultValue")
)是否存在值。或者甚至在特定索引超出列表范围时执行默认操作。
执行此操作的常用方法是在尝试此操作之前检查列表的大小。
答案 0 :(得分:3)
默认的List
界面没有此功能,据我所知({3}}或Guava都没有(并且可以从Javadocs中得知)。
如果这是你打算经常使用的功能,你可以编写自己的静态方法(这里受到Guava Apache Commons Collections类的启发):
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;
}
}