黑马程序员技术交流社区
标题:
这里为什么迭代器不能用??
[打印本页]
作者:
陈振宇
时间:
2014-4-5 23:55
标题:
这里为什么迭代器不能用??
package Collection;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);
}
public static ArrayList singleList(ArrayList a)
{
ArrayList newAl=new ArrayList();
Iterator it=a1.iterator();//这里a1 点不出来迭代器???为什么啊
while( it.hasNext())
{
Object obj=it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
作者:
钟成军
时间:
2014-4-6 00:10
package Collection;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);
}
public static ArrayList singleList(ArrayList a)
//你这里的形式参数是a,下面就不能用a1啊,a1是主函数里的变量
{
ArrayList newAl=new ArrayList();
Iterator it=
a.
iterator();//
将a1改成a就可以了,注意分清这是两个不同的函数
。
while( it.hasNext())
{
Object obj=it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
作者:
luoanjade
时间:
2014-4-6 00:30
注意变量的作用域!
作者:
陈振宇
时间:
2014-4-6 06:15
连接: java.lang包
http://bbs.itheima.com/thread-112874-1-1.html
(出处: 黑马程序员IT技术论坛)
作者:
╰青青子佩ˊゝ
时间:
2014-4-6 08:28
就一个小问题,不细心的孩子啊。看下面代码。
public class ArrayListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);
System.out.println(a1);
}
public static ArrayList singleList(ArrayList a1)//1.好吧,粗心问题,这里少了一个1.
{
ArrayList newAl=new ArrayList();
Iterator it=a1.iterator();//这里a1 点不出来迭代器???为什么啊
while( it.hasNext())
{
Object obj=it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
复制代码
作者:
muma
时间:
2014-4-6 08:53
键盘录入方法。
1、获取键盘录入对象。
InputStream in = System.in;
2、将字节流对象转成字符流对象,使用转换流。InputStreamReader
InputStreamReader isr = new InputStreamReader(in);
3、为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader
BufferedReader bufr = new BufferedReader(isr);
键盘的最常见写法。
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
public class ArrayListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);
System.out.println(a1);
}
public static ArrayList singleList(ArrayList a)//形参不是a,改成a1下面的迭代器就能用了 或者 将下面55行中改成Iterator it = a.iterator();
{
ArrayList newAl=new ArrayList();
Iterator it=a1.iterator();//这里a1 点不出来迭代器???为什么啊
while( it.hasNext())
{
Object obj=it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
}
复制代码
作者:
请备注
时间:
2014-4-6 10:05
import java.util.*;
class ArrayListDemo
{
public static void main(String[] args)
{
ArrayList al = new ArrayList();
//ArrayList a = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java01");
al.add("java02");
al.add("java03");
al.add("java02");
sop(al);
al = singleElement(al);
sop(al);
}
public static ArrayList singleElement(ArrayList a)
{
//定义一个临时容器。
ArrayList newAl = new ArrayList();
Iterator it = a.iterator(); //按上楼上说的我把代码改掉试了一下。可是对下面语句有疑问了。
while(it.hasNext()) //这里不是判断a容器里是否有元素吗?有就获取没有就是fales。a容器应该是
//是个空容器啊,这里应该是false的吧,求大神解释。
{
Object obj =it.next();
if(!newAl.contains(obj))
newAl.add(obj);
}
return newAl;
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2