我有一個代表字串輸入的 MyData 類,我還將其添加到串列中并單獨決議為陣列。
class MyData{
private String data1;
private String data2;
private int data3;
public MyData(String d1, String d2, int d3){
this.data1=d1;
this.data2=d2;
this.data3=d3;
}
//getter and setter
}
String str1="IRC00001 blue 2017";
String str2="IRC00002 red 2019";
String str3="IRC00003 black 2020";
List<String>list=new ArrayList<String>();
list.add(str1);
list.add(str2);
list.add(str3);
for(String s:list) {
String[] parts=s.split(" ");
String number=parts[0];
String colour=parts[1];
String y=parts[2];
int year=Integer.parseInt(y);
我正在嘗試在 for 回圈中為每個字串創建一個 MyData 物件,這是必要的,因為有大量字串(不在此示例中)并且用戶將無法單獨初始化它們中的每一個。但是,當我嘗試使用它們時,它們都被串列的最后一個條目覆寫了。有沒有辦法在回圈中初始化每個物件,如果是,我如何為每個物件命名一個變數?
如果這個問題被問過多次,我很抱歉。我只是找不到一種方法使它適用于我的示例。
```
List<MyData>myList=new ArrayList<MyData>();
for(String string1:list) {
myList.add(new MyData(number,colour,year));
}
for(MyData data:myList) {
System.out.print(data.getYear());
}
//prints:
//2020 2020 2020
uj5u.com熱心網友回復:
import java.util.ArrayList;
import java.util.List;
public class SOF {
public static void main(String[] arg) {
SOF s= new SOF();
s.test();
}
public void test(){
String str1 = "IRC00001 blue 2017";
String str2 = "IRC00002 red 2019";
String str3 = "IRC00003 black 2020";
List<String> list = new ArrayList<String>();
list.add(str1);
list.add(str2);
list.add(str3);
List<MyData> myList = new ArrayList<MyData>();
for (String s : list) {
String[] parts = s.split(" ");
String number = parts[0];
String colour = parts[1];
String y = parts[2];
int year = Integer.parseInt(y);
myList.add(new MyData(number, colour, year));
}
for (MyData data : myList) {
System.out.print(" " data.getData3());
}
}
}
class MyData{
private String data1;
private String data2;
private int data3;
public MyData(String d1, String d2, int d3){
this.data1=d1;
this.data2=d2;
this.data3=d3;
}
public String getData1() {
return data1;
}
public void setData1(String data1) {
this.data1 = data1;
}
public String getData2() {
return data2;
}
public void setData2(String data2) {
this.data2 = data2;
}
public int getData3() {
return data3;
}
public void setData3(int data3) {
this.data3 = data3;
}
}
輸出為:2017 2019 2020
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454108.html
標籤:爪哇
