2014-02-17 21 views
0

所以我有這個代碼在底部,我必須實例化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; 
} 
+0

你可以找到名單[這裏](HTTP的一些信息: //docs.oracle.com/javase/7/docs/api/java/util/List.html) – Warlord

+3

查看[Collections Trail](http://docs.oracle.com/javase/tutorial/collections /) – MadProgrammer

+1

['List'](http://docs.oracle.com/javase/7/docs/api/java/util/List.html)是Java中的一個接口。這意味着它可以(並且確實)有很多實現。兩個最基本的是['ArrayList'](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)和['LinkedList'](http:// docs。 oracle.com/javase/7/docs/api/java/util/LinkedList.html)。如何在這種情況下使用它們完全取決於您的要求。最簡單的方法是完全拋棄該方法,而是使用新的ArrayList (Arrays.AsList(data))。 – jpmc26

回答

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

一個列表是任何類,其實例可以包含對象的有序序列。

在Java中,您最可能要使用ArrayList<E>,這是通用列表。通用意味着只要您指定該類型(或其基本類型之一)來代替E,就可以將任何類型的對象放入列表中。 ArrayList<E>具有諸如add,getset的方法。

例如:

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

看那ArrayList<E> documentation對哪些方法提供給你更多的信息。

2

List是有序集合也被稱爲序列。對於有序的,這意味着可以在相同序列中檢索元素,因爲已將元素插入列表中。另一件重要的事情是,List是接口而不是具體的實現。對於具體的實現,看看LinkedList/ArrayList

要達到同樣的結果,我會寫這樣的事情: -

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

相關問題