这是我在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);
}
}
我应该如何使用该命令使其正常工作? 谢谢!
答案 0 :(得分:0)
可以使用toArray(<Type> t)
(ArrayList<Thing> list -> Thing[] arr = list.toArray(new Thing[0])
)将任何ArrayList转换为简单数组,但这可能不是您真正的问题。
根据你所展示的代码,你真正的问题更有可能是:“我如何迭代一个arraylist?”,答案是:“与数组或任何其他集合相同,使用for 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
}
自{v1.5 =)
以来,for
循环的使用已成为普通Java的一部分