将 ArrayList 转换为 Array - 不确定如何使用它 [重复]

Posted

技术标签:

【中文标题】将 ArrayList 转换为 Array - 不确定如何使用它 [重复]【英文标题】:Converting ArrayList to Array - not sure about how using it [duplicate] 【发布时间】:2013-06-04 17:10:31 【问题描述】:

这是我的第二个 Java 程序,也是我第一次使用 arrayList。 我搜索了如何转换它,并使用了我找到的方法,但是我得到了一个错误...

package eliminarepetidos;
import java.util.ArrayList;
import java.util.Random;
public class Eliminarepetidos 

public static ArrayList<Integer> eliminaRepetidos (int[] vet)
    ArrayList<Integer> retorna = new ArrayList<>();
    for(int i = 0; i<vet.length; i++)
        for (int j = i + 1; j < vet.length; j++)
            if ((vet[i] == vet[j])&&(vet[i]!=0)) vet[j]=0;                      
        if(vet[i]!=0) retorna.add(vet[i]); 
    return retorna;


public static void imprime (int[] vet, int numElem)
    System.out.print("Vetor resultante:");
    for (int i = 0;i<numElem;i++)    
        System.out.print(" " +vet[i]);       


public static void main(String[] args) 

    int[] t;
    t = new int[10];
    Random generator = new Random();
    for(int i = 0; i<10; i++)
        t[i] = generator.nextInt(12) +9;
    ArrayList<Integer> temporario = new ArrayList<>();
    temporario = eliminaRepetidos(t);
    int [] vetfinal = temporario.toArray(new int[temporario.size()]); //line with error
    imprime(vetfinal,vetfinal.length);


我应该如何使用该命令使其正常工作? 谢谢!

【问题讨论】:

你遇到了什么错误? 问题是你有一个整数数组列表并尝试创建一个整数数组(基元)。你可以在这里找到类似的问题,例如***.com/questions/718554/… 谢谢,@MateuszDymczyk!我用你的链接解决了我的问题。我不知道如何评价你的评论是否有用,否则我早就这么做了! @LucasTiago:我没有回答你的问题,因为我将它标记为重复,希望有人会投票关闭它。没有冒犯,但我喜欢我的 SO 没有冗余 :-) @MateuszDymczyk 没问题,今天开始使用 SO!不便之处请见谅=X 【参考方案1】:

任何 ArrayList 都可以使用 toArray(&lt;Type&gt; t) (ArrayList&lt;Thing&gt; list -&gt; Thing[] arr = list.toArray(new Thing[0])) 转换为简单数组,但这可能不是您真正的问题。

根据您显示的代码,您真正的问题更有可能是:“我如何迭代数组列表?”,答案是:“与数组或任何其他集合相同,使用foreach 模式中的 for 循环”:

int[] numbers = ...
ArrayList<Thing> things = new ArrayList<Thing>();
thing.add(new Thing(...));
...

for(int i: numbers) 
  System.out.println(i); // will print each element in the array


for(Thing t: things) 
  System.out.println(t); // will print each element in the arraylist

for 循环的这种用法自 v1.5 以来一直是普通 Java 的一部分 =)

【讨论】:

以上是关于将 ArrayList 转换为 Array - 不确定如何使用它 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 ArrayList 转换为 Array 抛出 java.lang.ArrayStoreException

如何将 ArrayList 转换为 Array [重复]

将 JSONarray 转换为 ArrayList

在 JSP 中从 Object ArrayList 转换为 Object Array

ArrayList集合类

[转]Java中怎样把数组转换为ArrayList