MOT*_*DEX 1 java arrays oop arraylist object
我有一个模型:fase.java,带有整数和字符串+ getter 和 setter:
public class Fase implements Serializable {
private Integer age;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
我想将整数和字符串存储在数组或数组列表中。我现在用这个:
public String[] getAllValues(){
String[] values = {age.toString(), name};
return values;
Run Code Online (Sandbox Code Playgroud)
然后在 dataServiceImpl.java 中,我使用以下命令检索数据:
user.getFase().getAllValues()[0];
Run Code Online (Sandbox Code Playgroud)
并检索年龄。
这是可行的,但我有的不仅仅是年龄和姓名,并且正在考虑是否可以将 Fase.java 中的所有内容放入一个 Array/ArrayList 中,因为它们是 Integer 和 String,然后在 dataServiceImpl.java 中检索它?
Fase.java 中是这样的:ArrayList <Objects> f3Values = new ArrayList <Objects>();
或者Fase [] f3Array = new Fase[34];
然后使用以下命令在 dataServiceImpl.java 中检索它:ArrayList<Fase3.Fase3Array> f3List = new ArrayList<Fase3.Fase3Array>();
并使用类似:user.f3List[0];?
小智 5
首先,您应该了解 Java 的工作原理。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
然后,您应该学习如何通过定义构造函数和 getter、方法、setter(如果需要;注意一般情况下的 setter会破坏封装)等来正确创建封装类。
然后,您应该了解,要聚合数据,您需要:
创建一个类,即包含所有必要字段的定义对象,
创建一个存储聚合(数组、、、ArrayList等等Map),
3a. 创建给定类的对象,设置字段的值,
3b. 将对象添加到聚合中,
3c. 转到 3a,直到聚合填满所需的数据。
解释一下所提供的代码,您首先应该有
public class Fase implements Serializable {
private int age;
private String name;
public Fase( int age, String name ) {
this.age = age;
this.name = name;
}
public int getAge() { return age; }
public String getName() { return name; }
}
Run Code Online (Sandbox Code Playgroud)
然后你可以创建聚合,例如
int FASE_MAX = 34;
Fase[] fArray = new Fase[FASE_MAX];
ArrayList<Fase> fArrayList = new ArrayList<Fase>(FASE_MAX);
Run Code Online (Sandbox Code Playgroud)
然后创建对象并将它们添加到聚合中,例如
for( int i = 0; i < FASE_MAX; i++ ) {
Fase newFase = new Fase( i, "John Doe" );
fArrayList.add( newFase );
fArray[i] = newFase;
}
Run Code Online (Sandbox Code Playgroud)
然后,也只有这样,您才能访问聚合:
Fase someFase = fArrayList.get( n );
Fase someOtherFase = fArray[n];
Run Code Online (Sandbox Code Playgroud)