Java 自定义列表与上次添加的元素重复
我制作了一个自定义列表,并在列表中添加了两个元素。 当我试图显示这两个元素时,它只显示最后添加的元素两次。我是一个java初学者,我似乎无法找到为什么我的列表只包含最后添加的重复项Java 自定义列表与上次添加的元素重复,java,Java,我制作了一个自定义列表,并在列表中添加了两个元素。 当我试图显示这两个元素时,它只显示最后添加的元素两次。我是一个java初学者,我似乎无法找到为什么我的列表只包含最后添加的重复项 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Home { public static void main(String[] args)
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Home {
public static void main(String[] args) {
int length = 2;
String[] machineName = { "BMW", "AUDI" };
for (int i=0; i<length; i++){
setMachineDetails(machineName[i]);
System.out.println("Machine Details No. : " + i + " SET");
}
System.out.println("\n\nDisplaying List contents\n\n");
System.out.println("Size of List : " + MachineDetails_List.serverData.size() + "\n\n");
for (MachineDetails model : MachineDetails_List.serverData){
System.out.println("MachineDetails Name : " + model.getMachineName());
}
}
private static void setMachineDetails(String name) {
MachineDetails md = new MachineDetails();
md.setMachineName(name);
MachineDetails_List.serverData.add(md);
System.out.println("Machine Name : " + name + " SET");
}
}
class MachineDetails {
public static String MACHINE_NAME;
public static String getMachineName() {
return MACHINE_NAME;
}
public static void setMachineName(String machineName) {
MACHINE_NAME = machineName;
}
}
class MachineDetails_List {
public static List<MachineDetails> serverData = new ArrayList<MachineDetails>();
public static List<MachineDetails> getServerData() {
return serverData;
}
public static void setServerData(List<MachineDetails> serverData) {
MachineDetails_List.serverData = serverData;
}
}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
公屋{
公共静态void main(字符串[]args){
整数长度=2;
字符串[]machineName={“BMW”,“AUDI”};
对于(int i=0;i而言,MACHINE\u NAME
不需要是static
。由于该字段是静态的,因此所有machinedtails
对象的MACHINE\u NAME
将具有相同的值
从machinedeails
类中删除static
关键字:
class MachineDetails {
public String MACHINE_NAME;
public String getMachineName() {
return MACHINE_NAME;
}
public void setMachineName(String machineName) {
MACHINE_NAME = machineName;
}
}
您应该将列表、变量设置为非静态。
public List serverData=new ArrayList();
类机器细节{
公共字符串机器名称;
公共字符串getMachineName(){
返回机器名称;
}
公共void setMachineName(字符串machineName){
机器名称=机器名称;
}
}
你真是个天才
You should make list,variable to be non static.
public List<MachineDetails> serverData = new ArrayList<MachineDetails>();
class MachineDetails {
public String MACHINE_NAME;
public String getMachineName() {
return MACHINE_NAME;
}
public void setMachineName(String machineName) {
MACHINE_NAME = machineName;
}
}