簡體   English   中英

創建對象時是否可以將字符串放入Arraylist中?

[英]Can I put a String in an Arraylist when a object is created?

我想制作一個程序,您可以在其中命名一個String(例如“ weapon”),然后將該String添加到ArrayList。 但是無需自己輸入:

MyArrayList.add(Egg); //for example

這樣新對象就會自動添加到Arraylist中。

因此,我做了一個創建一個包含武器名稱的Arraylist。 我創建了一個方法,您可以在主類中使用武器名稱“創建”一個對象。但是,當我創建一個對象(在主類中)時,如何自動將其自身添加到數組列表中。

(抱歉解釋不好,我來自荷蘭,所以...如果解釋不好,請告訴我,以便我改善)

根據我對您的問題的解釋,您希望用戶創建武器名稱並將其添加到ArrayList中,而無需手動添加代碼來添加它?

從用戶獲取String輸入的基本方法:

Scanner inputscan = new Scanner(System.in); //reads input from command line
String weapon = inputscan.nextLine(); //waits for user input
MyList.add(weapon);

這樣,每次調用包含該代碼的“ make”方法時,它將提示用戶鍵入武器名稱,然后將武器名稱存儲在數組中。

也許我完全誤解了,但是您想做這樣的事情嗎?

private ArrayList<YourObject> list;

public YourMainClass(){
    list = new ArrayList<YourObject>();
}

public void onAdd(String weaponName){
    list.add(new YourObject("weaponName")); // <- this being your issue
}

YourObject類似:

public class YourObject
{
    private String name;

    public YourObject(String n){
        setName(n);
    }

    public void setName(String n){
        // Perhaps an if-else to check if n isn't null, nor emtpy?
        name = n;
    }
    public String getName(){
        return name;
    }
}

我認為您想在其中初始化包含對象的List:

嘗試使用實例塊,如下所示:

List<String> list = new ArrayList<String>() {{
  add("Egg");
}};

添加命令以將對象添加到構造函數中的集合中。

您可以創建一個輔助類,該輔助類將創建該對象並為集合添加標簽。

class  WeaponFactory
{
  Collection c;
  public WeaponFactory(Collection coll){c=coll;}
  public Weapon makeWeapon(String text)   // Makes sense when the object is not String , like a Weapon class which also contains stats or something
  {
   Weapon w = new Weapon(text)
   c.add(w);
   return w;
  }
}


class Weapon
{
  String name;
  public Weapon(String text)
  {
    name = text;
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM