例如我有一個 :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 (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 = (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 );
二个问题
个人觉得可以
(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)
listspeed.addAll(listadv)
======================================
会多出一个4吧 感觉只能一个一个遍历并且判断
import java.util.Iterator;public class Test{
ArrayList al1=new ArrayList();
ArrayList al2=new ArrayList();
public Test(){
this.al1.add("x");
this.al1.add("y");
this.al1.add("z");
this.al1.add("1");
this.al1.add("2");
this.al1.add("3");
this.al1.add("4");
this.al2.add("a");
this.al2.add("b");
this.al2.add("c");
this.al2.add("4");
this.al2.add("5");
this.al2.add("6");
//用addAll有两个4
this.al1.addAll(this.al2);
Iterator iter=this.al1.iterator();
while(iter.hasNext()){
System.out.print(iter.next());
}
}
public static void main(String args[]){
new Test();
}
}
import java.util.Iterator;public class Test{
ArrayList al1=new ArrayList();
ArrayList al2=new ArrayList();
String str2="";
public Test(){
this.al1.add("x");
this.al1.add("y");
this.al1.add("z");
this.al1.add("1");
this.al1.add("2");
this.al1.add("3");
this.al1.add("4");
this.al2.add("a");
this.al2.add("b");
this.al2.add("c");
this.al2.add("4");
this.al2.add("5");
this.al2.add("6");
Iterator it=this.al1.iterator();
while(it.hasNext()){
this.str2=it.next()+"";
}
Iterator iter=this.al2.iterator();
while(iter.hasNext()){
String str=iter.next().toString();
int i=this.str2.indexOf(str);
if(i==-1){
this.al1.add(str);
}
}
Iterator it2=this.al1.iterator();
while(it2.hasNext()){
System.out.println(it2.next());
}
}
public static void main(String args[]){
new Test();
}
}
//这种写法可以不把重复的4加进去
//应该有简便的写法 但我不会 呵呵
list bList ab = new ArrayList();
ab=a;
ab.add(b);
set.addAll(this.al1);
this.al1.clear();
this.al1.addAll(set);这样就可以去除重复了
{
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);这样就可以去除重复了