簡體   English   中英

如何在Java中編輯類類型數組中的元素?

[英]How to edit elements in array of class type in java?

如何編輯類類型數組中的單個元素。 例如,如何為元素1分配名稱和描述?

Object [] myArray = new Object7; 對象myObject = myArray [5]; //在索引5處獲取對象,然后對您的對象進行更改

創建數組:

type[] arrayName = new type[size];

例:

int[] someNumbers = new int[10]; // array with 10 slots

要獲取元素,只需使用arrayName[index] 數組是從0-based ,因此第5個元素的獲取是由someNumbers[4]

假設我們有一個“人員”數組,您想更改一個人員地址。

Person personObj = arrayOfPersons[3]; // get the 4th person
personObj.setAddress("New York");

而已! 你完成了!

附加說明:如果嘗試訪問數組外部的元素(使用負索引或大於或等於數組長度的索引),則將獲得ArrayIndexOutOfBoundsException

您是否要向此類添加其他屬性?

我想你有一個數組

String[] data = new String[]{"a", "b", "c"}

要添加其他屬性,可以嘗試創建包裝器:

class Wrapper<T> {

    private T origin

    public String name;
    public String desc

    public Wrapper(T data) {
        origin = data;
    }
}

要添加其他屬性:

Map<String, Wrapper> extraProperties = new HashMap<String, Wrapper>();

Wrapper<String> w = new Wrapper<String>(data[1]);
w.name = "a name";
w.desc = "description"

extraProperties.put(data[1], w);

要訪問其他屬性:

if(extraProperties.contains(data[1])) {
    extraProperties.get(data[1]).name
    extraProperties.get(data[1]).desc
}

如何為元素1分配名稱和描述?

這取決於您的班級,但這是一個(不好的)例子:

YourClass[] array = .... ;           // wherever it comes from
array[1].name = "World";             // if name is a member of your class
array[1].setDescription("whatever"); // if there is a setter for description

請注意,元素1是數組的第二個元素,因為indes以0開頭。

例如,這里的objectCar類型的class 並且您的Car object具有一個名為setNumberPlate(String x)的方法,該方法類似於:

void setNumberPlate (String str)
{
   //numberPlate is a String data member of your Car class
   numberPlate = str;
}

你需要有一個方法的原因是因為它是一個很好的做法,讓您的數據成員class private 例如,這是類:

Class Car
{
   private String numberPlate;

   public void setNumberPlate(String str)
   {
      numberPlate = str;
   }

}

然后,您可以在另一個類中訪問此方法。 如果將對象存儲在array ,那么這就是您要做的。

Car[] arr = new Car[10];

arr[0].setNumberPlate("UIA9490");

暫無
暫無

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

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