如何使用subList()或任何其他方法获取java.util.List中的最后一条记录?

时间:2017-12-06 12:06:37

标签: java

假设我有一个大小为100的元素列表。现在我只想要列表中的第100条记录,并且应该从列表中删除所有1-99条记录。

我已经尝试了下面的代码,但是我看到它没有列表大小的变化。
//输出list.size()返回100

list.subList(list.size()-1, list.size()); 

//输出list.size()在subList()调用...后返回100 如何使用subList()或使用Java中可用的任何其他方法获取java.util.List中的最后一条记录?

3 个答案:

答案 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实施最有效。