導航:首頁 > 編程語言 > java迭代

java迭代

發布時間:2022-02-01 19:11:00

『壹』 java里遞歸和迭代分別是什麼演算法

迭代是普通的循環。
例:求從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遍歷中,你可以認為一個箱子里放了很多的書。我們想要知道這些書的名字,那麼我們通常的做法就是,拿一個箱子(這個箱子里只可以放一個書),每次用這個箱子取書,那麼我們拿的那個箱子就是相當於緩沖只用的,所以迭代就差不多是這個意思,這是我個人的理解,希望對你有點幫助

閱讀全文

與java迭代相關的資料

熱點內容
noi演算法 瀏覽:457
zip解壓縮是電腦自帶的嗎 瀏覽:643
魔術演算法術嗎 瀏覽:783
復式五肖演算法 瀏覽:721
海康威視設備已加密 瀏覽:663
自適應路由演算法 瀏覽:315
pythonxlwt寫入一列 瀏覽:995
性之助app哪裡可以下載 瀏覽:414
安卓如何自己改圖標 瀏覽:848
如何去掉app資源庫的建議 瀏覽:730
中興研發面試要寫演算法嗎 瀏覽:65
linux系統配置文件 瀏覽:601
php登錄網頁模板 瀏覽:931
windownginxphp 瀏覽:509
resync命令 瀏覽:536
dos命令手冊 瀏覽:287
矽谷編程二維數組 瀏覽:41
inside游戲什麼時候移植安卓 瀏覽:944
極光安卓是什麼 瀏覽:541
如何減少pdf文件大小 瀏覽:84