Java iterator 迭代器如何加入元素...可以加入不同类型的元素么?

Java iterator 迭代器如何加入元素...可以加入不同类型的元素么?,第1张

java中iterator方法的调用是,对象.iterator(),你说的collection<>coll,首先要看泛型中定义成什么了,如果collection<>coll是collection<Integer>coll,那你的String类型的数据一定加不进去collection<Integer>coll = new ArrayList(),所以就无法用同一个对象的迭代器了。解决方法可以:

Collection<Integer>coll = new ArrayList<Integer>()

coll.add(1111)

Iterator<Integer>collIt = coll.iterator()

while(collIt.hasNext()){

System.out.println(collIt.next())

}

List<String>list = new ArrayList<String>()

list.add("123")

Iterator<String>listIt = list.iterator()

while(listIt.hasNext()){

System.out.println(listIt.next())

}

/*

-------------------华丽的分割线第二种方法

*/

//这是个不负责的设计,正确的设计应该严格控制调用的参数,切记

Collection coll2 = new ArrayList()

coll2.add("123")

coll2.add(123)

Iterator list2It = coll2.iterator()

while(list2It.hasNext()){

System.out.println(list2It.next())

}

Iterator接口中一共有3中方法。

API中的方法摘要是这样的

boolean hasNext()

         如果仍有元素可以迭代,则返回 true。

E next()

         返回迭代的下一个元素。

void remove()

         从迭代器指向的集合中移除迭代器返回的最后一个元素(可选 *** 作)。

举个例子给你看看

ArrayList a = new ArrayList()//创建集合

a.add("aaa")//向集合中添加元素

a.add("bbb")//向集合中添加元素

a.add("ccc")//向集合中添加元素

Iterator t = a.itrator()//获取迭代器,用于取出集合的元素

System.out.print(t.hasNext())//输出的是true。 hasNext()的返回值是boolean,是用于判断是否集合中还有下一个元素。

System.out.println(t.next())//输出的是aaa,可见next()方法返回的是集合的元素

t.remove()//移除迭代器返回的最后一个元素,上面只用到了next()方法一次,所以删除的是上面的aaa,就是说集合里已经没有aaa了。

上面的打印是为了看出效果才这么做的,实际上,真正用的时候是直接对返回值进行 *** 作。而不是只进行打印输出。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11525406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存