读书人

有ArrayList ,该如何处理

发布时间: 2012-01-22 22:38:43 作者: rapoo

有ArrayList
例如我有一 :list
listspeed (x,y,z,1,2,3,4) <------list里所含有的物件(即listspeed.get(0)=x)

在有另一list
listadv (a,b,c,4,5,6) <------- 也是list里所含有的物件

如果我想list 的西合

listspeed.add(listadv) <--法?
listspeed = (x,y,z,1,2,3,a,b,c,4,5,6) <--得到果?

另一,如果我用了listspeed.clear();之後可以用listspeed.add(obj)?
我想做到,某情就把listspeed所有容清除,但遇到另一情,我又要把西重新放listspeed里,可以?




[解决办法]
listspeed.add(listadv) <--法?
listspeed = (x,y,z,1,2,3,a,b,c,4,5,6) <--得到果?
-----------------------------------------
试一下就知道了 不会 遍历第2个放到第一个里 还要判断是否重复
[解决办法]
一个问题
listspeed (x,y,z,1,2,3,4)
listadv (a,b,c,4,5,6)
ArrayList arr = new ArrayList();
arr.add(listspeed );
arr.add(listadv );
二个问题
个人觉得可以
[解决办法]
第一个问题:

listspeed.add(listadv)不会得到
(x,y,z,1,2,3,a,b,c,4,5,6)
这样的结果,
而得到的是
(x,y,z,1,2,3,(a,b,c,4,5,6))
这样的结果,因为listadv是整个作为一个元素加到listspeed中的。

楼上的方法也不对,楼上的代码结果是
((x,y,z,1,2,3),(a,b,c,4,5,6))
也不是楼主想要的。

正确应该用addAll(),即
listspeed.addAll(listadv)


[解决办法]
list a;
list b

List ab = new ArrayList();
ab=a;
ab.add(b);
[解决办法]
放到 set 里面在取出来就没有重复了
[解决办法]
关于第一个问题应该是不行的,与放进去的顺序无关的
[解决办法]


for(Iterator it =listadv.iterator();it.hasNext();)
{
Object elm = it.next();
if(listspeed.contains(elm))
{
listspeed.remove(elm);
}
listspeed.add(elm);


}
listadv ==null;
应该就这样写了,自己在封装一下

[解决办法]

这样无法承受大数据量(很慢)

---------------------------

for(Iterator it =listadv.iterator();it.hasNext();)
{
Object elm = it.next();
if(listspeed.contains(elm))
{
listspeed.remove(elm);
}
listspeed.add(elm);


}
listadv ==null;


这样可能小数据量的时候慢点,但它可以承受大数据量(会快很多)
-------------------
Set set = new HashSet();
set.addAll(this.al1);
this.al1.clear();
this.al1.addAll(set);

这样就可以去除重复了


读书人网 >J2SE开发

热点推荐