2013-10-25 46 views
-2

我需要創建一個數組並添加和刪除數組的末尾。
問題是我被要求建立Arraylist構造函數來初始化數組「列表」,但我得到的錯誤 我該怎麼做?如何在Java中創建Array和ArrayList

01.創建ArrayList(-1)的實例。列表大小將變爲10
02.添加15個項目。只有10將被添加
03.這裏是清單
ACEGIKMOQS
04.調用刪除三次
05.這裏是清單
ACEGIKM
06.調用expandByTen
07.下面是列表
ACEGIKM
08.添加15個項目。
09.這裏是清單
A C E G I K M B d F H 1 J L N p個[RŤV X Z

import java.util.ArrayList; 

public class Main{ 

    /** 
    * @param args 
    */ 

    // create an array list 

     char []list; 
    int length; 

    ArrayList(int maxSize) 
    { 
     if (maxSize<=0) 
      length=10; 
     else 
      length=maxSize; 

    } 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     ArrayList arrayList; 
     System.out.println("01. Creating an instance of ArrayList(‐1). The list size will become 10"); 
     arrayList = new ArrayList(‐1); 
     System.out.println("02. Adding 15 items. Only 10 will be added"); 
     for (int i = 65; i < 96; i += 2) { 
      arrayList.insertEnd((char) i); 
     } 
     System.out.println("03. Here is the list"); 
     arrayList.print(); 
     System.out.println("04. Calling delete three times"); 
     arrayList.deleteEnd(); 
     arrayList.deleteEnd(); 
     arrayList.deleteEnd(); 
     System.out.println("05. Here is the list"); 
     arrayList.print(); 
     System.out.println("06. Calling expandByTen"); 
     arrayList.expandByTen(); 
     System.out.println("07. Here is the list"); 
     arrayList.print(); 
     System.out.println("08. Adding 15 items."); 
     for (int i = 66; i `enter code here`< 97; i += 2) { 
      arrayList.insertEnd((char) i); 
     } 
     System.out.println("09. Here is the list"); 
     arrayList.print(); 
     } 
    } 
+1

請閱讀JLS和ArrayList中的文檔,然後再回來。你有什麼不是遠程Java。看起來你有嚴重的誤解。請解釋一下,這是什麼意思:「我被要求構建ArrayList構造函數?」而且,WTF是** T **? – Ingo

+0

我需要讓出放 01.創建的ArrayList(-1)的一個實例。列表大小將變爲10 02.添加15個項目。只有10將被添加 03.這裏是清單 ACEGIKMOQS 04.調用刪除三次 05.這裏是清單 ACEGIKM 06.調用expandByTen 07.這裏是清單 ACEGIKM 08.新增15個項目。 09.這裏是清單 A C E G I K M B d F H 1 J L N p個[R牛逼V X Z –

+1

當陌生人問你 「打造的ArrayList構造函數」 說不! – Ingo

回答

2

ArrayList已經存在......你不需要寫這樣構造的類:ArrayList(int maxSize)

實例化ArrayList就像你剛纔在main方法做:

List myList = new ArrayList(); //don't add a -1 parameter 

然後,巧妙地使用ArrayList的方法,您將在Java API找到。

myList.add(...); 
myList.remove(...); 
myList.size(); 
+0

_italic_ **但是,當我需要通過構造函數設置列表的大小時!!!!!! **'代碼' –

+1

歡迎來到Java世界。如果需要,ArrayList會自動添加更多空間。別擔心。 –

+0

@Noornoor ArrayList沒有最大尺寸,它會根據需要增長到最大(可用內存),但是,如果您希望 –

2

Arraylist動態分配大小,增加大小,而你添加元素。 。所以你可以像下面那樣創建數組列表。

ArrayList arrayList= new ArrayList(10); 

ArrayList arrayList= new ArrayList(); 

你不能創建大小-1的ArrayList。將new ArrayList(-1);更換爲new ArrayList();

從程序中刪除以下無用的代碼。它不會在所有

ArrayList(int maxSize) 
    { 
     if (maxSize<=0) 
      length=10; 
     else 
      length=maxSize; 

    } 

工作有沒有方法print();deleteEnd();insertEnd((char) i);Arraylist

+0

值得注意的是,使用arraylist的初始大小參數對其實際操作沒有任何影響,除非如果大小設置大致等於它將包含的對象的數量,使其更有效 –

0
  • 我沒有看到你創建char陣列的新實例。任何對它的引用都會生成一個NullPointerException
  • 我沒有看到聲明或執行ArrayList.insertEnd(..)這會產生一個編譯錯誤,所以我假設你沒有在這裏包括它(deleteEnd和等)。
  • 假設你與在構造中定義的長度的某處創建char[]實例,則設置大小等於10如果構造參數小於或等於零。在main方法,實例化的ArrayList實例的大小爲-1,這應該(基於一點你提供什麼)創造(的地方)的list場的大小爲10。但是一個實例,你的第一個循環嘗試進行15次迭代,這將在運行時,如果你不這樣做適當的界限在insertEnd方法檢查產生IndexOutOfBounds例外。

我要出去一趟,猜測你是在做這個作爲學校的作業嗎?如果沒有,請注意Java在java.util包中包含了大量的容器,包括java.util.ArrayList

+0

這是學校的一項任務,但問題是...我無法正確解釋我的問題,所以現在我堅持這個問題,我沒有得到任何幫助我解決任務的提示 我只是想知道是否人們可以通過電子郵件幫助我,所以我可以附上任務文件?? !!!! –

+0

如果您正在尋找某人爲您編寫代碼,那不會是我。我願意幫助解釋爲什麼你會得到一個特定的輸出,但是你必須爲自己制定實現細節。這是編程更好的最好方法。如果你不能這樣做,那麼你可能想看看參與另一個主題。 – MadConan

+0

您可以通過閱讀ArrayList的Java API獲得一些想法。它沒有給出實現細節,但它確實解釋了提供的功能(即* what * vs * how *) – MadConan