本文目录一览:
- 1、java Iterable接口 解释一段程序
- 2、java中Iterator和Iterable的区别
- 3、java数组使用iterate求和的问题!
- 4、JAVA中Iterator的具体作用?
- 5、java中的数组问题
java Iterable接口 解释一段程序
Iterator是一个遍历器。它相当于一个游标,刚开始时指向要遍历的集合(比如程序中的String数组)的第一个元素之前,然后每调用一次next()方法,这个游标就会向前走一格,当走到集合最后一个元素之后,hasNext()方法会返回false,表示游标已经走到最后,没有下一个值了。
以下是详细注释:
import java.util.*;
public class IterableClass implements IterableString {
protected String[] words = (“And that is how “
+ “we know the Earth to be banana-shaped.”).split(” “);//将这段字符串按照“ ”来分解成一个字符串数组,即words[0]=And words[1]=that words[2]=is ……..
public IteratorString iterator() {
return new IteratorString() {这里声明了一个实现Iterator接口的匿名内部类,并返回了内部类的实例
private int index = 0;//字符串数组的下标标记,相当于一个游标,每调用一次next()方法,下标就会加1,就是说游标往前走一格,当这个下标等于或者大于字符数组的长度的时候,表示游标走到最后一个元素之后了,没有下一个元素了
public boolean hasNext() {
return index words.length;//判断下标是不是大于或等于数组长度了,是的话返回false,表示游标走到最后了
}
public String next() {
return words[index++];//先返回当前游标指向的words数组里的数据,然后游标往前走(index++).
}
public void remove() { // Not implemented hasNext() 和next()方法都是重写接口里的抽象方法,而这个不是。
throw new UnsupportedOperationException();//抛出异常
}
};
}
//至于这个main方法。。。不能体现Iterator的使用,而且这样编译不报错?!!!
/*public static void main(String[] args) {
for (String s : new IterableClass())
System.out.print(s + ” “);
}*/
//应该这样写:
public static void main(String args[]){
IterableClass itTest=new IterableClass();
IteratorString it=itTest.iterator();//获得匿名内部类的对象,即获得遍历器
while(it.hasNext()){//判断游标当前指向的是不是尾部
String a=it.next();//取出游标当前之乡的值,然后游标往前走一格(index++)
System.out.println(a);
}
}
}
java中Iterator和Iterable的区别
java ITerable和Iterator的区别如下:
1.Iterator是迭代器类,而Iterable是为了只要实现该接口就可以使用foreach,进行迭代.
Iterable中封装了Iterator接口,只要实现了Iterable接口的类,就可以使用Iterator迭代器了。
2.集合Collection、List、Set都是Iterable的实现类,所以他们及其他们的子类都可以使用foreach进行迭代。
3.Iterator中和核心的方法next(),hasnext(),remove(),都是依赖当前位置,如果这些集合直接实现Iterator,则必须包括当前迭代位置的指针。当集合在方法间进行传递的时候,由于当前位置不可知,所以next()之后的值,也不可知。而当实现Iterable则不然,每次调用都返回一个从头开始的迭代器,各个迭代器之间互不影响。
java数组使用iterate求和的问题!
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class MyFrist1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ListInteger list =new ArrayListInteger();
System.out.println(“Please type ten integers”);
for (int i = 0; i 10; i++) {
list.add(scanner.nextInt());
}
IteratorInteger myIterator = list.iterator();
int sum = 0;
while (myIterator.hasNext()) {
int number = myIterator.next();
sum = sum + number;
}
System.out.println(sum);
}
}
首先,数组没有iterator,看你的代码应该用ListInteger为佳
其次求和的时候sum应该在for循环外面,作用域范围错。
JAVA中Iterator的具体作用?
迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。
Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。
迭代器应用:
list l = new ArrayList();
l.add(“aa”);
l.add(“bb”);
l.add(“cc”);
for (Iterator iter = l.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
/*迭代器用于while循环
Iterator iter = l.iterator();
while(iter.hasNext()){
String str = (String) iter.next();
System.out.println(str);
}
*/
java中的数组问题
foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。相对老的for语句来说是个很好的补充。提倡能用foreach的地方就不要再用for了。在用到对集合或者数组索引的情况下,foreach显得力不从心,这个时候是用for语句的时候了。foreach一般结合泛型使用
还有一点要注意的是:foreach 的遍历速度要比for慢。
两个可以对比着使用..
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245601.html