java迭代
Ⅰ java迭代器
java.util.Iterator<E> 這個在java中被稱為迭代器。
開始不很明白可以吧他當List理解,只是方法有些不同,但2個不是一樣的。具體的看你自己運用。有時把List轉化為Iterator是為了方便。
這個東西和java.util.List一樣重要。
Integer 是int數據類型的包裝類,與int相比Integer要大得多,並且具有方法。
Ⅱ java中」遍歷「,」迭代「是什麼意思
首先解釋迭代。
迭代簡單的理解,重文字上可以才分為 迭(疊)加,代入(數)
是利用計算機高速、可從重復性高的特點進行計算的模式
迭代的最簡單應用就是,把四維整型數組,中的內容全部輸出。那就用四層循環慢慢取吧。
每次循環做的事情基本上是一件事,無外乎就是角標自增,然後取數。
再說遍歷。
遍歷很好理解,通過某種方式,不論是重頭到尾,還是用Hash演算法,
反正是從頭到尾把數據結構(鏈表、數組、樹、圖)所有的節點都訪問一遍,就叫遍歷。
像剛才,四維數組取數,就是一個遍歷的過程,
簡單的使用迭代的方式,從第一個元素一直遍歷(取)到最後一個元素。
稍微復雜的還有遍歷二叉樹,遍歷歐拉圖等。都用相應的演算法。
Ⅲ 在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中的迭代分為迭代器還是演算法。
不知你想知道哪種
如果是迭代器的話,那沒什麼好說的,就是封裝一個類而已。
如果是演算法,下面附上代碼,研究下便理解。
/**
*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 迭代的作用
迭代:在java中的使用一般使用在集合中和foreach遍歷中,你可以認為一個箱子里放了很多的書。我們想要知道這些書的名字,那麼我們通常的做法就是,拿一個箱子(這個箱子里只可以放一個書),每次用這個箱子取書,那麼我們拿的那個箱子就是相當於緩沖只用的,所以迭代就差不多是這個意思,這是我個人的理解,希望對你有點幫助
Ⅵ 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()方法得到每一個元素,最後在進行相關的操作。
(7)java迭代擴展閱讀
首先,創建了一個List的集合對象,並放入了倆個字元串對象,然後通過iterator()方法得到迭代器。iterator()方法是由Iterable介面規定的,ArrayList對該方法提供了具體的實現,在迭代器Iteartor介面中,有以下3個方法:
1、hasNext()該方法英語判斷集合對象是否還有下一個元素,如果已經是最後一個元素則返回false
2、next()把迭代器的指向移到下一個位置,同時,該方法返回下一個元素的引用
3、remove() 從迭代器指向的Collection中移除迭代器返回的最後一個元素,該操作使用的比較少。
注意:從Java5.0開始,迭代器可以被foreach循環所替代,但是foreach循環的本質也是使用Iterator進行遍歷的。
Ⅷ 關於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 迭代
你最後那句話
==================
最後寫成這種形式就行了
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 迭代問題
int i = 0;
for (java.util.Iterator iterator = colUsers.iterator(); iterator.hasNext();i++) {
Object o = iterator.next();
if(i > 6 && i < 13){
System.out.println(o);
}
if(i > 12){
break;
}
}