黑马程序员技术交流社区
标题:
关于一个面试中的代码题,求各位大神指点
[打印本页]
作者:
I空空
时间:
2014-12-28 23:10
标题:
关于一个面试中的代码题,求各位大神指点
//一个ArrayList对象aList中存有若干个字符串元素,
//现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
class No2
{
public static void main(String[] args)
{
ArrayList<String> aList=new ArrayList<String>();//创建了一个aList容器
Collections.addAll(aList,"abcdf","abc","abc","hjjk","hhjje");//向容器里添加元素
for(Iterator<String> iter=aList.iterator();iter.hasNext();)//遍历容器里的元素
{
String str=iter.next();
if(str.equals("abc"))//当容器里的元素和abc的值相同时,利用迭代器自带的remove()方法删除该元素
iter.remove();
//str=null;//为什么我这么写,最后出来的还是有abc呢
}
for(String str1: aList)//遍历修改后的容器
{
System.out.println(str1);
}
}
}
作者:
雪落纷飞
时间:
2014-12-28 23:41
字符串str 的值定义后不可改变,str是指向堆内存地址位置的
str = null;只是改变了指向,并没有改变原值,差不多就这意思。。。
作者:
常强儿
时间:
2014-12-29 01:32
这么说吧:
有一个类
class A {
int a;
}
令外一个地方
A a1 = new A();
a1.a = 1;
A aTest = a1;
aTest = null;
现在的a1.a是多少,当然是1了,怎么可以是空呢。
作者:
xiao飞
时间:
2014-12-29 09:50
集合判断里面是否有包含的元素是用的 contains 这个方法,有就返回true ,没有就是false
作者:
xiao飞
时间:
2014-12-29 09:56
上面写错 不好意思 ,我好像看到过别人是这样写的,"abc".equals(it.next())
作者:
詹岳伟
时间:
2014-12-29 10:28
把equals改成contains就好
作者:
十万一千
时间:
2014-12-29 22:48
刚刚调了下,你代码没问题啊,这题我是这样写的
ArrayList<String> strings = new ArrayList<String>();
strings.add("accd");
strings.add("abc");
strings.add("ttd");
strings.add("abcc");
strings.add("abc");
strings.add("xx");
for (int i = 0; i < strings.size(); i++) {
if ("abc".equals(strings.get(i))) {
strings.remove(i);
}
}
for (String string : strings) {
System.out.println(string);
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2