【发布时间】:2019-09-15 14:16:52
【问题描述】:
var numbers = new ArrayList<Integer>(100);
for (var i = 1; i <= 100; i++) {
numbers.add(i);
}
这是一系列数字(仅作为示例)
但是,它以错误的数字开头。
我需要它以 21 开头,而不是 1。
修改循环将不必要地复杂。将ArrayList 分成两个List 并交换它们更容易。
numbers = Stream.concat(numbers.subList(20, 100).stream(), numbers.subList(0, 20).stream()).collect(Collectors.toCollection(ArrayList::new));
我使用了concat方法,它合并了两个ArrayLists和subList方法,它返回了ArrayList的一部分。
但是,创建一个只是顺序不同的新ArrayList 是不合逻辑的。
使用sorted方法就够了,但是不知道怎么写才能正确排序。
请帮忙
谢谢
【问题讨论】:
-
我无法理解您的问题。如果您希望循环从 21 开始,请将
i = 1更改为i = 21。如果你想拆分一个 ArrayList,这已经在 Stack Overflow 上介绍过很多次了。如果你想对 List 进行排序,那也已经被介绍过很多次了。但我不知道你真正想要的什么。投票结束,因为不清楚。 -
为什么是 JavaFX 标签?
-
@Basil Bourque 我删除了标签。是的你是对的。我只是不知道要寻找什么。只有在写问题的时候我才意识到我应该使用
sorted方法。但是,@Udith Gunaratna 用户准确地表达了我想要的。
标签: java sorting arraylist sublist