【问题标题】:How do I convert from ArrayList<int[]> to an int Array?如何从 ArrayList<int[]> 转换为 int 数组?
【发布时间】:2013-03-28 02:59:13
【问题描述】:

我该如何转换:

 ArrayList<int[]>

-到-

 int[]

?

例子

private ArrayList<int[]> example = new ArrayList<int[]>();

private int[] example;

例如ArrayList({1,2,3},{2,3,4}) to {1,2,3,2,3,4}

【问题讨论】:

  • 你有没有尝试过?
  • 您想将一个列表组合成一个更大的列表吗?你试过什么?
  • 数组列表到数组?我不关注。
  • @Jake223 - 我怀疑这是否是完全相同的副本。 OP 有一个非常独特的要求。

标签: java arraylist


【解决方案1】:

这个问题的(稍微)棘手的部分是您必须在开始之前计算出输出数组需要多大。所以解决办法是:

  1. 循环遍历列表以求和列表中数组的大小
  2. 分配输出数组
  3. 使用嵌套循环将整数复制到输出数组。

我不会为你编写这个代码。您应该能够自己编写代码。如果没有,你需要变得有能力 ...通过尝试自己做。


如果输入和输出类型不同,则可以使用 3rd 方库获得更简洁的解决方案。但是您使用 int[] 的事实使您不太可能找到现有的库来帮助您。

【讨论】:

    【解决方案2】:

    关于这个的快速食谱:计算每个数组中的元素数量,创建一个数组来保存所有元素,复制元素:)

    import java.util.ArrayList;
    
    // comentarios em pt-br
    public class SeuQueVcConsegue {
    
        public static void main(String[] args) {
    
            ArrayList<int[]> meusNumerosDaSorte = new ArrayList<int[]>();
            meusNumerosDaSorte.add(new int[]{1,2,3});
            meusNumerosDaSorte.add(new int[]{4,5,6});
    
            // conta os elementos
            int contaTodosOsElementos = 0;
            for( int[] foo : meusNumerosDaSorte){
                contaTodosOsElementos += foo.length;
            }
    
            // transfere os elementos
            int[] destinoFinal = new int[contaTodosOsElementos];
            int ponteiro = 0;
            for( int[] foo : meusNumerosDaSorte){
                for( int n : foo){
                    destinoFinal[ponteiro] = n;
                    ponteiro ++;
                }
            }
    
            // confere se esta correto :)
            for(int n : destinoFinal){
                System.out.println(n);
            }
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多