我已经编写了下面的代码,用于从单个链接列表的末尾查找第5个元素。不应该多次遍历列表。假设在没有遍历列表的情况下无法知道列表大小。我的代码是否满足问题?我已经看到使用指针解决了同样的问题,所以如果我的方法是错误的,我会感到困惑。
public class LinkedList {
public static void main(String[] args) {
List<String> inputListStr = new ArrayList<String>();
java.util.LinkedList<String> outputList = new java.util.LinkedList<String>();
System.out.println("Enter comma separated input");
Scanner Scan1 = new Scanner(System.in);
inputListStr = Arrays.asList(Scan1.next().split(","));
outputList.addAll(inputListStr);
nthElement(outputList);
Scan1.close();
}
public static void nthElement(java.util.LinkedList<String> outputList) {
int counter = 0;
for (String list : outputList) {
counter++;
}
System.out.println("5th element is " + outputList.get(counter - 5));
}
}
答案 0 :(得分:1)
LinkedList
和ArrayList
将大小保持为实例内的int
。因此,检查大小不会计为遍历列表。
因此,您可以使用一行代码解决您的问题:
Object solution = list.get(list.size() - 5);
当然你需要添加一些检查,比如列表的大小是否至少为5,但你明白了^^