【问题标题】:Java - creating new ArrayLists based on the size of previous ArrayListsJava - 根据先前 ArrayLists 的大小创建新的 ArrayLists
【发布时间】:2018-03-27 02:45:08
【问题描述】:

我有ArrayList<String> armArray1=[1, 2, 3, 4]ArrayList<String> armArray2=[5, 6, 7, 8]。两个数组的size() 将始终彼此相等,但可能包含 4 到 100 个元素。

在每次运行时,我需要确定其中一个数组的size()(因为两者的大小将始终彼此相等)。本例中的大小为4,因此我需要将两个数组中的相应元素放入新的ArrayList。例如:ArrayList<String> a=[1, 5]ArrayList<String> b=[2, 6]ArrayList<String> c=[3, 7]ArrayList<String> d=[4, 8]。数组的size() 在每次运行时都会发生变化,因此需要在每次运行时确定它们的大小。现在,我创建了一个ArrayList,其中包含基于armArray1size() 的变量。我正在尝试找出如何进一步进行。任何帮助或指导将不胜感激。

//create another ArrayList that would create the variables based on the size() of armArray1
ArrayList<String> var = new ArrayList<String>();
for (int i = 1; i < armArray1.size() / 3 + 1; i++) {
    var.add("arm"+i);
}
//this gives [arm1,arm2,arm3,arm4]

【问题讨论】:

标签: java arrays string arraylist dynamic


【解决方案1】:

确定 Arraylist 的长度为 O(1),因为 List 实现会维护 size 字段并在每次执行时递增/递减修改列表。

那么你为什么不能像这样简单地这样做 -

Stream<String> combinedStream = Stream.of(list1, list2, list3).flatMap(Collection::stream);
List<String> finalList = combinedStream.collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2015-08-29
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2015-02-03
    相关资源
    最近更新 更多