求段代码。。。。!

没事眯一会 2011-12-27 11:19:25
有一个集合ls,里面有一些数据,还有一个集合lt,lt中存的全是整数,想去掉ls中lt存在的项,该怎么写。

比如:

List ls=new ArrayList();
List lt=new ArrayList();
ls.add("a");
ls.add("b");
ls.add("c");
ls.add("d");
ls.add("e");
ls.add("f");

lt.add(1);
lt.add(3);

要去掉ls的第一项和第三项,也就是ls.remove(1)和ls.remove(3),结果要是 ls=[a, c, e, f]
要是循环去的话,去掉第一项后,原来的第二项就变成第一项了,不知道该怎么写,新手求帮助!!
...全文
101 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
没事眯一会 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 devil_cpp 的回复:]
for(Integer temp:lt)
{
ls.remove(temp);
}
//搞定拉~~
[/Quote]
貌似不行
没事眯一会 2011-12-28
  • 打赏
  • 举报
回复
删除ls中的 lt只是存的要删除ls的位数
逆乾坤 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sichongxing 的回复:]
引用 5 楼 monghuan 的回复:
Java code


//仅供参考
import java.util.*;
class Test
{
public static void main(String [] args) throws Exception
{
List ls=new ArrayList();
List lt=new ArrayL……


你可能没理解……
[/Quote]
究竟是删除lt还是ls中的数据??????
逆乾坤 2011-12-28
  • 打赏
  • 举报
回复
for(Integer temp:lt)
{
ls.remove(temp);
}
//搞定拉~~
逆乾坤 2011-12-28
  • 打赏
  • 举报
回复
for(Integer temp:lt)
{
ls.remove(temp);
}
//搞定拉~~
没事眯一会 2011-12-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 monghuan 的回复:]
Java code


//仅供参考
import java.util.*;
class Test
{
public static void main(String [] args) throws Exception
{
List ls=new ArrayList();
List lt=new ArrayL……
[/Quote]

你可能没理解我的意思,lt里面应该要去的那一项,是位数。
leilei0932_java 2011-12-27
  • 打赏
  • 举报
回复
我测了一遍应该没问题了:

List<String> sl = new ArrayList<String>();
sl.add("a");
sl.add("b");
sl.add("c");
sl.add("d");
sl.add("e");
sl.add("f");
sl.add("g");
sl.add("h");
List<Integer> il = new ArrayList<Integer>();
il.add(1);
il.add(3);
il.add(9);

//将存放整数的list转换为数组
int[] i = new int[il.size()];
for (int j = 0; j < il.size(); j++) {
i[j] = il.get(j);
}

//将数组从大到小排序
int temp;
for (int m = 0; m < i.length; m++) {
for (int n = 0; n < i.length-m-1; n++) {
if(i[n]<i[n+1]){
temp = i[n];
i[n] = i[n+1];
i[n+1] = temp;
}
}
}

//遍历删除
for (int j = 0; j < i.length; j++) {
//这里判断是因为9大于集合的size所以需要排除
if(i[j]<sl.size()){
sl.remove(i[j]);
}
}

System.out.println(sl.toString());
swear2009221 2011-12-27
  • 打赏
  • 举报
回复
lt排列从大到小,先去掉ls中靠后的 然后去掉靠前的
脉动 2011-12-27
  • 打赏
  • 举报
回复

//仅供参考
import java.util.*;
class Test
{
public static void main(String [] args) throws Exception
{
List ls=new ArrayList();
List lt=new ArrayList();
ls.add("a");
ls.add("b");
ls.add("c");
ls.add("d");
ls.add("e");
ls.add("f");

lt.add("b");
lt.add("d");
Iterator it=lt.iterator();
String i=null;
while(it.hasNext())
{
if(ls.contains(i=(String)it.next()))
ls.remove(i);
}
System.out.println(ls);

}
}
脉动 2011-12-27
  • 打赏
  • 举报
回复

import java.util.*;
class Test
{
public static void main(String [] args) throws Exception
{
List ls=new ArrayList();
List lt=new ArrayList();
ls.add("a");
ls.add("b");
ls.add("c");
ls.add("d");
ls.add("e");
ls.add("f");

lt.add("b");
lt.add("d");
Iterator it=lt.iterator();
String i=null;
while(it.hasNext())
{
if(ls.contains(i=(String)it.next()))
ls.remove(i);
}
System.out.println(ls);

}
}
脉动 2011-12-27
  • 打赏
  • 举报
回复

//仅供参考
import java.util.*;
class Test
{
public static void main(String [] args) throws Exception
{
List ls=new ArrayList();
List lt=new ArrayList();
ls.add("a");
ls.add("b");
ls.add("c");
ls.add("d");
ls.add("e");
ls.add("f");

lt.add("b");
lt.add("d");
Iterator it=lt.iterator();
String i=null;
while(it.hasNext())
{
if(ls.contains(i=(String)it.next()))
ls.remove(i);
}
System.out.println(ls);

}
}

测试结果:

[a, c, e, f]

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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