有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

自定义对象的java ArrayList

我有一个只有一个字符串字段的简单类,还有ArrayList。 当我为循环添加一些元素到ArrayList时,发生了一些奇怪的事情

ArrayList<MyClass> list = new ArrayList<Myclass>();
MyClass mc = new MyClass();

for(int i=0;i<someNumber;i++){
     String s = new String(Integer.toString(i));
     mc.setString(s);
     list.add(mc);
}

之后,当我打印列表时,列表中每个元素的字符串都是相同的

我明白,如果我的list.add(new Myclass(s);工作正常,那么我是否需要每次都创建一个MyClass的新实例?如果someNumber很大,则会占用太多内存。谢谢


共 (1) 个答案

  1. # 1 楼答案

    您需要在循环中移动对象mc的实例化

    ArrayList<MyClass> list = new ArrayList<Myclass>();
    
    
    for(int i=0;i<someNumber;i++){
         MyClass mc = new MyClass();
         String s = new String(Integer.toString(i));
         mc.setString(s);
         list.add(mc);
    }