使用List,如何使用List更改此代码

时间:2014-02-17 23:31:00

标签: java arrays collections

所以我在底部有这个代码,我必须将myArray实例化为一个新数组。将int []数据中的所有数据复制到myArray。将numMoves设置为0. data包含用户输入值的数组。所以这里的代码是通过使用int和just = signs和new来完成的,但现在我需要更改这个使用“List”,我不知道列表是什么以及如何使用它。所以我需要帮助的是java上的什么是List,我将如何使用List。谢谢,我更喜欢告诉我它是如何工作的,谢谢!

 public class Deletions
{
private int[] myArray;
private int numMoves;

public Deletions(int[] data)
{
    myArray = new int [data.length] ;

    for(int n = 0; n < data.length; n++)
    {
        myArray[n] = data[n]; 
    }

    numMoves = 0;
}

4 个答案:

答案 0 :(得分:2)

首先,原始数组复制方法可以这样写。

    int[] myArray = new int[data.length];
    System.arraycopy(data, 0, myArray, 0, data.length);

然后,解决方案将是

public List<Integer> copyToList(int[] data){
    List<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < data.length; i++) {
        list.add(data[i]);
    }
    return list;
}

public List<Integer> copyFromToList(List<Integer> data){
    return new ArrayList<Integer>(data);
}

答案 1 :(得分:2)

List是一个有序集合,也称为序列。对于有序,这意味着可以检索与将元素插入List中相同的序列中的元素。另一个重要的事情,List是接口而不是具体的实现。有关具体实施,请查看LinkedList / ArrayList等。

为了达到同样的效果,我会这样写: -

new ArrayList<>(Arrays.asList(data));

答案 2 :(得分:1)

list 是任何类,其实例可以包含有序的对象序列。

在Java中,您很可能希望使用ArrayList<E>,这是通用列表。通用意味着您可以在列表中放置任何类型的对象,只要您指定该类型(或其基本类型之一)代替EArrayList<E>包含addgetset等方法。

例如:

ArrayList<Integer> myList = new ArrayList<Integer>();
myList.add(1337);
myList.add(42);

查看ArrayList<E> documentation,了解有关可用方法的更多信息。

答案 3 :(得分:1)

public class Deletions
{
    private ArrayList<Integer> myArray;
    private int numMoves;

    public Deletions(int[] data)
    {
        myArray = new ArrayList<Integer>();

        for(int n = 0; n < data.length; n++)
        {
            myArray.add(data[n]); 
        } 

        numMoves = 0;
    }
}

http://docs.oracle.com/javase/tutorial/collections/implementations/list.html