一个ArrayList的问题请指教

chrisl80 2004-08-26 03:56:27
ArrayList a=new ArrayList();
ArrayList b=new ArrayList();
for(int j=0;j<3;j++)
{
for(int i=0;i<10;i++)
{
a.add("1");
}
b.add(a);
}
System.out.println(b.size());
for(int k=0;k<3;k++)
{
ArrayList c=new ArrayList();
c=(ArrayList)b.get(k);//?????????????????????
System.out.println(c.size());
for(int m=0;m<10;m++)
{
c.get(m);
}
}
带问号处为什么是30,而不是10,难道ArrayList不能包含ArrayList吗?怎样把ArrayList写成二维表的形式?
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
figoren 2004-08-26
  • 打赏
  • 举报
回复
HITZXL(编程要厚道) 正解
你第一次都是同一个a
所以都是30个
falcon272003 2004-08-26
  • 打赏
  • 举报
回复
加个object应该不行,第二位说的对.因为add默认是往后加.
HITZXL 2004-08-26
  • 打赏
  • 举报
回复
原因是你的a一直所指的是一个对象;
它虽然在第一次循环后存入了b,
但在后面的循环中,a所指对象又加入到了30个字符串;
所以你取a的个数,当然就是30了
而我修改的就是让a在经过第一次循环后,不在指向这个存有10个字符串的对象;
而重新建立一个对象;
让这个对象在存入10个字符串;
依次
所以我上面执行的结果就是
在你的?号处,都显示10
HITZXL 2004-08-26
  • 打赏
  • 举报
回复
ArrayList a=new ArrayList();
ArrayList b=new ArrayList();
for(int j=0;j<3;j++)
{ a=new ArrayList();

for(int i=0;i<10;i++)
{
a.add("1");
}
b.add(a);
a=null;
}
System.out.println(b.size());
for(int k=0;k<3;k++)
{
ArrayList c=new ArrayList();
c=(ArrayList)b.get(k);//?????????????????????
System.out.println(c.size());
for(int m=0;m<10;m++)
{
c.get(m);
}
}
-----------------------
这样应该就好用
loveunittesting 2004-08-26
  • 打赏
  • 举报
回复
没事过,你用b.add((object)a); 试试看

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧