假设我有一个大小为100的元素列表。现在我只想要列表中的第100条记录,并且应该从列表中删除所有1-99条记录。
我已经尝试了下面的代码,但是我看到它没有列表大小的变化。
//输出list.size()返回100
list.subList(list.size()-1, list.size());
//输出list.size()在subList()调用...后返回100 如何使用subList()或使用Java中可用的任何其他方法获取java.util.List中的最后一条记录?
答案 0 :(得分:7)
list.subList
返回原始List
支持的新List
。
您需要将返回的列表存储在变量中才能使用它:
List<String> subList = list.subList(list.size()-1, list.size());
subList.size()
将为1. list
将保持不变。
如果要删除原始List
中除最后一个元素之外的所有元素,可以写:
list.subList(0, list.size()-1).clear();
现在原始List
只包含1个元素。
答案 1 :(得分:4)
ArrayList.subList 方法返回列表的子列表,而不修改现有列表。
所以你需要这样做;
list = list.subList(list.size()-1, list.size());
答案 2 :(得分:2)
要在不更改列表的情况下获取最后一条记录,您可以使用:
element = list.get(list.size()-1);
这适用于任何列表,对ArrayList
实施最有效。