首页 新闻 会员 周边

ArrayList集合的问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-12-14 10:22
//Student 类
class Student{string name,int age}
//查询结果Test类
ArrayList<> list=new ArrayList<>();
list.add(new Student("aa",12));
Student a=new Student("aa",12);
list.remove(a);
要求不报错,怎么解决,不能将list.add(a)
ζั͡ޓއއއ๓ 堕落的主页 ζั͡ޓއއއ๓ 堕落 | 初学一级 | 园豆:5
提问于:2013-12-19 21:20
< >
分享
最佳答案
0

list.remove(a) 这句报错吧,a 是new的一个新对象 与list.Add(new Student)不是同一个对象,

当你remove一个没有添加到list中的对象时当然是不可以的,

收获园豆:10
Zery | 大侠五级 |园豆:6151 | 2013-12-19 21:50

应该不会报错的,就算没有添加,楼主瞎搞,代码胡写。你有见过class student{string name,int age}的写法么。

雾静 | 园豆:561 (小虾三级) | 2013-12-19 22:41
其他回答(3)
0

不建议使用ArrayList,直接使用泛型多好。

魔多 | 园豆:1015 (小虾三级) | 2013-12-19 21:35

我也想呀

0

你代码有写对吗?

雾静 | 园豆:561 (小虾三级) | 2013-12-19 22:37

现在那?

这是老师给的简便问题 

不过意思就那意思

@ζั͡ޓއއއ๓ 堕落: 

你代码写错了吧?类能直接这样写? 就算你移除a,arrayList 也不会报错

class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("运行开始!");
ArrayList list = new ArrayList();
list.Add(new Student("aa", 11));
Student objStudent = new Student("aa", 11);
list.Remove(objStudent);
Console.WriteLine(list.Count);
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
class Student
{
public string name; public int age;
public Student(string name, int age)
{
this.name = name; this.age = age;
}
}

支持(0) 反对(0) 雾静 | 园豆:561 (小虾三级) | 2013-12-19 22:43

@雾静: 是JAVA问题 不是C#问题,不过还是谢谢你

@ζั͡ޓއއއ๓ 堕落: 哦。Java不是很懂,但是如果是C#。以上代码应该没问题,如果移除是报错,可能是未将对象的引用设置到对象的实例吧,因为压根就没添加a啊。都是对象的引用,就算值一样,指向的对象地址应该是不同的。

支持(0) 反对(0) 雾静 | 园豆:561 (小虾三级) | 2013-12-19 22:50

@雾静: 这个到懂 但不知道怎么做  哎  好无奈

@ζั͡ޓއއއ๓ 堕落: 你是想移除名字为“aa”的这个吗?如果是好办,如果不是,不用理会为什么要做这个,没有任何意义

支持(0) 反对(0) 雾静 | 园豆:561 (小虾三级) | 2013-12-19 23:00
0

当然会错啦

list.add(new Student("aa",12));
Student a=new Student("aa",12);

每次new一个实例  都会分配过内存  虽然你 list.add(new Student("aa",12));里边的student实例的属性 和 student a 的属性值相等 ;  but!  这两个实例一点关系都木有

 

你现在是要remove   名字为aa age为12的话只能 遍历arraylist的所有项 判断~然后remove  ,    用泛型的话会好点吧 比如dictionary<string,Student>  dic=new  dictionary<string,Student>  ();  dic.Add(student.Name,student);

 

 

 

mushishi | 园豆:230 (菜鸟二级) | 2013-12-23 13:14

java中的arraylist的话 就遍历吧~~ 骚年

 

支持(0) 反对(0) mushishi | 园豆:230 (菜鸟二级) | 2013-12-23 13:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册