gpt4 book ai didi

Java如何像Python一样将两个或多个数组附加到新数组中

转载 作者:行者123 更新时间:2023-12-01 19:57:49 24 4
gpt4 key购买 nike

我写这个问题是因为我似乎找不到任何适合我需要的答案。

我想要实现的目标:我想创建新的数组,例如java中的array3可以保存来自不同数组的两个或多个数组,例如array3 = [[array1], [array2], [arrayN]].

在 Python 中,我知道如何将 2 个列表附加到第 3 个列表,例如:

list1 = [1, 2, 3]
list2 = [11, 22, 33]
list3 = []

for i in range(len(list1)):
list3.append([list1[i], list2[i]])

print(list3)

结果将是:[[1, 11], [2, 22], [3, 33]]

我找不到如何在 Java 中执行此操作的正确答案。 Java 有没有办法实现这个目标?

添加了我所做的事情:

        String[] list1 = integer1.split(";");
String[] list2 = integer2.split(";");
String[] list3 = integer3.split(";");
String[] list4 = integer4.split(";");

int lenOfList1 = list1.length;
int lenOfList2 = list2.length;
int lenOfList3 = list3.length;
int lenOfList4 = list4.length;

int result1 = Integer.compare(lenOfList1, lenOfList2);
int result2 = Integer.compare(lenOfList3, lenOfList4);
int result3 = Integer.compare(result1, result2);

ArrayList<String> ar = new ArrayList<String>();

if (result3 == 0) {
System.out.println("This is result: " + result3 + ", and we are good to go now!");
for(int i=0; i < lenOfList1; i++){
ar.add(list1[i]);
ar.add(list2[i]);
ar.add(list3[i]);
ar.add(list4[i]);
}
} else {
System.out.println("This is result: " + result3 + ", and this is the end!");
}

最佳答案

我只是创建一种方法来将列表重新分组为二维。

使用简单的可变参数方法,例如:

 public static <T> List<List<T>> groupArrays(T[]... arrays){

这样,您就可以将任意数量的数组传递给该方法。实现看起来像

public static <T> List<List<T>> groupArrays(T[]... arrays){
if(arrays.length == 0){
throw new IllegalArgumentException("No arrays to concat");
}

//Find the longuest array to know how many inner list to create
int maxLength = arrays[0].length;
for(int i = 1; i < arrays.length; ++i){
maxLength = Math.max(maxLength, arrays[1].length);
}

//creating those now reduce the complexity in the next loop.
List<List<T>> lists = new ArrayList<>();
for(int i = 0; i < maxLength; ++i){
lists.add(new ArrayList<>());
}

for(T[] array : arrays){
for(int i = 0; i < array.length; ++i){
lists.get(i).add(array[i]);
}
}

return lists;
}

然后,就这样调用它:

Integer[] a1 = {1, 2};
Integer[] a2 = {11, 22, 33, 44};
Integer[] a3 = {111, 222, 333};

List<List<Integer>> result = groupArrays(a1, a2, a3);
System.out.println(result);

[[1, 11, 111], [2, 22, 222], [33, 333], [44]]

关于Java如何像Python一样将两个或多个数组附加到新数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48901907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com