迭代是普通的循环。
例:求从1加到10
int sum=0
for(int i=0;i<= 10;i++){
sum=sum+i;
}
递归是指一个函数直接或间接调用自己。
好比:从前有个庙庙里有个大和尚和小和尚,大和尚叫小和尚讲故事,小和尚说从前有个庙庙里有个大和尚和小和尚,小和尚叫大和尚讲故事,大和尚说从前....
递归的特点:
必有三个条件:
1. 间接或直接调用自己。
2. 一定要有退出的条件(比方说大和尚口干了不听故事了)。否则就是死循环
3。要有逻辑体(想要做的事);
public int sum(int x){
if(x<=0){
return x;
}
return x+sum(x-1);
}
int s=10;
int total=sum(s);
该例中,sum函数总是调用自己,return x+sum(x-1);
sum有退出条件, x<=0
最后的结果是把 10+9+8+7+... 1 返回
在很多种情况下,迭代和递归都可以完成相同的功能, 不过递归有些功能迭代就完成不了。 并且代码没有递归简洁,熟练使用递归后能提高代码质量。
‘贰’ java中什么叫迭代,什么叫迭代器
迭代:
是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。
重复执行一系列运算步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果,都是由对前一次所得结果施行相同的运算步骤得到的。例如利用迭代法*求某一数学问题的解。
对计算机特定程序中需要反复执行的子程序*(一组指令),进行一次重复,即重复执行程序中的循环,直到满足某条件为止,亦称为迭代。
迭代器(Iterator)模式:
又叫做游标模式,它的含义是,提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。
注意:Java的集合框架的集合类,有的时候也称为容器。
从定义上看,迭代器是为容器而生,它本质上就是一种遍历的算法。因为容器的实现千差万别,很多时候不可能知道如何去遍历一个集合对象的元素。Java为我们提供了使用迭代的接口,Java的所有集合类丢失进行迭代的。
简单的说,迭代器就是一个接口Iterator,实现了该接口的类就叫做可迭代类,这些类多数时候指的就是java.util包下的集合类。
总结:
迭代器,提供一种访问一个集合对象各个元素的途径,同时又不需要暴露该对象的内部细节。java通过提供Iterator和Iterable俩个接口来实现集合类的可迭代性,迭代器主要的用法是:首先用hasNext()作为循环条件,再用next()方法得到每一个元素,最后在进行相关的操作。
(2)java迭代扩展阅读
首先,创建了一个List的集合对象,并放入了俩个字符串对象,然后通过iterator()方法得到迭代器。iterator()方法是由Iterable接口规定的,ArrayList对该方法提供了具体的实现,在迭代器Iteartor接口中,有以下3个方法:
1、hasNext()该方法英语判断集合对象是否还有下一个元素,如果已经是最后一个元素则返回false
2、next()把迭代器的指向移到下一个位置,同时,该方法返回下一个元素的引用
3、remove() 从迭代器指向的Collection中移除迭代器返回的最后一个元素,该操作使用的比较少。
注意:从Java5.0开始,迭代器可以被foreach循环所替代,但是foreach循环的本质也是使用Iterator进行遍历的。
‘叁’ java中”遍历“,”迭代“是什么意思
首先解释迭代。
迭代简单的理解,重文字上可以才分为 迭(叠)加,代入(数)
是利用计算机高速、可从重复性高的特点进行计算的模式
迭代的最简单应用就是,把四维整型数组,中的内容全部输出。那就用四层循环慢慢取吧。
每次循环做的事情基本上是一件事,无外乎就是角标自增,然后取数。
再说遍历。
遍历很好理解,通过某种方式,不论是重头到尾,还是用Hash算法,
反正是从头到尾把数据结构(链表、数组、树、图)所有的节点都访问一遍,就叫遍历。
像刚才,四维数组取数,就是一个遍历的过程,
简单的使用迭代的方式,从第一个元素一直遍历(取)到最后一个元素。
稍微复杂的还有遍历二叉树,遍历欧拉图等。都用相应的算法。
‘肆’ java 迭代
你最后那句话
==================
最后写成这种形式就行了
req.setAttribute("station", ?);
======================我没看懂。
你的意思是不是从station里除去一个地铁线的站点,剩下的放入一个新的list。方法比较多。
我不知道你的地铁站点是什么样的结构,应该也有一个id作为唯一标识吧?
可以通过地铁线的id,查询出这个线所有的地铁站点的id,并存放到一个HashSet<Long> id_set里面。
新建一个List,然后遍历所有地铁站
List<SubwayStation> anthor_list = null;
for(SubwayStation ss:station){
if(!id_set.contains(ss.getId())){
anthor_list.add(ss);//查看这个id集合里是否有这个id,如果没有就加入到新的集合中。
}
}
当然,感觉最好还是一开始不要放入List中,而放入一个LinkedHashSet中。这样,只要遍历特定地铁线的集合,然后在所有地铁中一一移除。
如果有疑问,在和我联系。
‘伍’ JAVA迭代是什么意思
JAVA中的迭代分为迭代器还是算法。
不知你想知道哪种
如果是迭代器的话,那没什么好说的,就是封装一个类而已。
如果是算法,下面附上代码,研究下便理解。
/**
*Filsename: SortArray.java
*Task: 数组的迭代插入排序算法
*/
public class SortArray{
public static void main(String[] args)
{
int array[]={8,9,1,4,2,3,0,6,5,7};
display(array);
insertionSort(array,array.length);
display(array);
}
public static void insertionSort(int[] a,int n)
{
for(int unsorted=1;unsorted<n;unsorted++)
{
insertInOrder(a[unsorted],a,0,unsorted-1);
}
}
private static void insertInOrder(int num,int[] a,int first,int last)
{
while(first<=last&&num<a[last])
{
a[last+1]=a[last];
last--;
}
a[last+1]=num;
}
public static void display(int[] a)
{
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
System.out.println();
}
}
‘陆’ java 迭代器
这样就可以了,list一开始是空的,怎么加进去丫
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo05 {
public static void main(String args[]) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
Iterator<Integer> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
‘柒’ JAVA迭代器
java.util.Iterator<E> 这个在java中被称为迭代器。
开始不很明白可以吧他当List理解,只是方法有些不同,但2个不是一样的。具体的看你自己运用。有时把List转化为Iterator是为了方便。
这个东西和java.util.List一样重要。
Integer 是int数据类型的包装类,与int相比Integer要大得多,并且具有方法。
‘捌’ 关于JAVA迭代
private class Itr implements Iterator<E> {
/**
* Index of element to be returned by subsequent call to next.
*/
int cursor = 0;
/**
* Index of element returned by most recent call to next or
* previous. Reset to -1 if this element is deleted by a call
* to remove.
*/
int lastRet = -1;
public boolean hasNext() {
return cursor != size();
}
public E next() {
checkForComodification();
try {
E next = get(cursor);
lastRet = cursor++;
return next;
} catch (IndexOutOfBoundsException e) {
checkForComodification();
throw new NoSuchElementException();
}
}
以上是AbstractList中的内部类Itr部分源码,看到cursor++了吗?每取一次next(),指针向后移了一位啊。
‘玖’ 在java中迭代是什么意思
重复的反馈某一过程(操作)叫迭代,
在java中,就是循环重复的进行某一操作,比如一个程序要累加1到100的和,
那么只要定义一个变量sum,让它重复的进行累加操作:
int sum =0;
for( int i=1; i<=100; i++ ){
sum = sum +i;
}
其中执行一次sum = sum + i ;就称之为一次迭代,每一次迭代得到的结果(sum + i 的和)会作为下一次迭代的初始值(结果赋值给sum变量后,这个变量又作下一次迭代的初始值);这就是迭代与普通循环的区别。
‘拾’ java 迭代的作用
迭代:在java中的使用一般使用在集合中和foreach遍历中,你可以认为一个箱子里放了很多的书。我们想要知道这些书的名字,那么我们通常的做法就是,拿一个箱子(这个箱子里只可以放一个书),每次用这个箱子取书,那么我们拿的那个箱子就是相当于缓冲只用的,所以迭代就差不多是这个意思,这是我个人的理解,希望对你有点帮助