【发布时间】:2021-11-07 11:36:52
【问题描述】:
如何在 Java 中获取 ArrayList 的数组切片?具体来说,我想做这样的事情:
ArrayList<Integer> inputA = input.subList(0, input.size()/2);
// where 'input' is a prepouplated ArrayList<Integer>
所以我希望这可以工作,但 Java 返回 List - 所以它不兼容。当我尝试转换它时,Java 不会让我这样做。我需要ArrayList - 我该怎么办?
【问题讨论】:
-
你为什么坚持使用
ArrayList?我认为您可能对接口的工作方式缺乏了解,因为List和ArrayList并非“不兼容”——ArrayList实现了List,而List可能包含您需要的所有必要方法。 -
我坚持使用ArrayList,因为它是一个带有严格方法原型的inteview问题。我显然缺乏理解,因为 subList 应该返回一个 List 类型,但我不能将返回的 List 转换为 ArrayList。所以你告诉我男人..
-
他完全有可能需要一个
ArrayList,因为他需要用它调用一个接受ArrayList的方法。可以说这种方法设计得很糟糕,应该接受List,但这种情况不仅会出现在面试问题中,而且会出现在其他人编写的代码中,不能随便更改。同事和图书馆并不总是完美的。