class name1
{
        String s1;
long num;
public int de_fen = 12;
name1(long num, String s1,int de_fen)
{
this.s1 = s1;
this.num = num;
this.de_fen = de_fen;
}
}
import java.util.*;
import java.text.*;
public class name {
public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(new name1(2,"s2",1));
        }
}
如何才能引用或者改变name1中数值,例如把2变为3···
望大神给予指导。。
ArrayList

解决方案 »

  1.   

    你想通过ArrayList来改变name1的属性值??,那是不可能的,因为List存值都是将name1这个对象copy进去,你可以想像两块堆内存。也就是说你将name1从List中拿出来,操作的是另外一个等值的name1。你用list是无法改变的。
      

  2.   

    在list中找到是2的对象直接修改
      

  3.   

    不可以引用怎么找到该对象??????
    list没有此方法。。
      

  4.   

    首先不建议用list的,找特定的值时候建议用map。
    你如果找的话只能遍历list
    for(Nname1 n:list){
    if(n.num==2){
    n.num=3;
    }
      

  5.   

    这样,那一楼说的就不对了,不是copy的,而是像c语言的指针一样,操作原对象?
      

  6.   

    往ArrayList对象中添加对象,其实是添加了对象的引用,需要的时候可以将引用找出来,通过引用改变指向的对象中的属性。如:name1 n = (name1)list.get(0);  //得到的对象时Object类型的,需要强制转成name1类型的
    n.setName("你想改成的值);
    看了你的代码觉得编码不是很规范,比如类名的第一个字母应该大写,这些都是基本的哦