❶ 求java的for的用法
這種寫法成為for each,是jdk1.5出現的新特性,for循環的改進版,意思就是對IntWritable類型的數組或集合values進行遍歷
for(IntWritable val : values) {
System.out.println(val);
}
功能等同於
for(int i = 0; i<values.length; i++) {
System.out.println(values[i]);
/*對values[i]進行處理*/
}
❷ java中for循環有兩種形式 一種是for(int i=0;i<6;i++) 另一種怎麼表示的求具體解釋
另一種是foreach循環 List<String> list=new ArrayList<String>();
for(String str : list){
意思是把list里的每一個元素賦值給String變數str;
}
在eclipse裡面打fore按Alt+/補全快捷鍵就可以快捷打出循環. 注意list前面有個冒號,
網路顯示不大清楚.
❸ 學java有必要學STL嗎
Java 中所有的STL均繼承自Collection類。所以Collection類的方法所有的子類均可使用:
ACM中常用的方法有
boolean add(Object obj)
boolean remove(Oblect obj)
boolean contains(Object obj)
void clear()
boolean isEmpty()
Iterator iterator()
int size()
另外Collections類中包含sort方法可以對Vector容器進行排序,但是Vector中的元素必須實現Comparable介面或自定義Comparator,詳見Vector。
請注意Collections和Collection不一樣,前者是介面後者是類。
Set
java 中的Set是一個抽象的類,因此我們不可以用Set直接定義實例,必須通過子類來定義實例。常見的子類有 HashSet , TreeSet等。
另外java中的所有容器的元素都只能是類的實例而不可以是基本數據類型。所以我們不能定義裝有int的Set而是要把int改為Integer類。
HashSet
HashSet 中的元素需要實現hashCode()方法,以實現元素的比較
class P
{
int x, y;
int hashCode()
{
return x*100000 + y;
}
}
Set<P>st = new HashSet<P>();
遍歷Set中的元素
1 迭代器
Iterator<P> it = st.iterator();
while(it.hasNext())P e=it.next();
2 枚舉
for(P e : st)System.out.println(e.x+" "+e.y);
TreeSet
TreeSet 與HashSet不同的地方在於TreeSet中的元素要實現Comparable介面
值得注意的是 TreeSet與C++中的set很相似,遍歷是會自動按照comparable定義的順序進行
class P implements Comparable<P>
{
int x,y;
int compareTo(P e)
{
return x<e.x?-1:1;
}
}
C++中set有upper_bound(),lower_bound()方法和multiset,遺憾的是Java中 我暫時還沒有看到
Map
Map 同Set一樣包含HashMap和TreeMap 且如果遍歷TreeMap會自動按照comparable規定的順序進行
boolean containsKey(Object key)
boolean containsValue(Object value)
value get(Object key)
value put(Object key,Object value)
Map的一般用法
1.聲明一個Map:
Map map = new HashMap();
2.向map中放值,注意: map是key-value的形式存放的,如:
map.put("sa","dd");
3.從map中取值:
String str = map.get("sa").toString,
結果是: str = "dd'
4.遍歷一個map,從中取得key和value:
Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}
網上找的程序遍歷map
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class HashMapTest {
private static Map<Integer, String> map=new HashMap<Integer,String>();
❹ java中for循環的幾種寫法
以下為for循環的幾種寫法:
/***
方法一:最普通的不加思考的寫法
* <p>*優點:較常見,易於理解
* <p>* 缺點:每次都要計算list.size()*/
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
/***
方法二:數組長度提取出來
* <p>* 優點:不必每次都計算
* <p>* 缺點:
1、m的作用域不夠小,違反了最小作用域原則
2、不能在for循環中操作list的大小,比如除去或新加一個元素*/
int m = list.size();
for (int i = 0; i < m; i++) {
System.out.println(list.get(i));
}
/***
方法三:數組長度提取出來
* <p>* 優點:
1、不必每次都計算
2、所有變數的作用域都遵循了最小范圍原則
* <p>* 缺點:
1、m的作用域不夠小,違反了最小作用域原則
2、不能在for循環中操作list的大小,比如除去或新加一個元素*/
for (int i = 0, n = list.size(); i < n; i++) {
System.out.println(list.get(i));
}
/***
方法四:採用倒序的寫法
* <p>* 優點:
1、不必每次都計算
2、所有變數的作用域都遵循了最小范圍原則
* <p>* 缺點:
1、結果的順序會反
2、看起來不習慣,不易讀懂
* <p>* 適用場合:與顯示結果順序無關的地方:比如保存之前數據的校驗*/
for (int i = list.size() - 1; i >= 0; i--) {
System.out.println(list.get(i));
}
/***
方法五:Iterator遍歷
* <p>* 優點:簡潔
* <p>* 缺點:*/
for (Iterator<String> it = list.iterator(); it.hasNext();) {
System.out.println(it.next());
}
/*** 方法六:
jdk1.5新寫法
* <p>* 優點:簡潔結合泛型使用更簡潔*
<p>* 缺點:jdk1.4向下不兼容*/
for (Object o : list) {
System.out.println(o);
}
❺ JAVA使用for循環如何列印梯形
//在網頁中實現
for(int i=5;i<12;i=i+2)
{
for(int j=0;j<i;j++)
{
Response.Write("*");
}
Response.Write("<br/>")
}
❻ java中什麼叫迭代,什麼叫迭代器
迭代:
是重復反饋過程的活動,其目的通常是為了逼近所需目標或結果。每一次對過程的重復稱為一次「迭代」,而每一次迭代得到的結果會作為下一次迭代的初始值。
重復執行一系列運算步驟,從前面的量依次求出後面的量的過程。此過程的每一次結果,都是由對前一次所得結果施行相同的運算步驟得到的。例如利用迭代法*求某一數學問題的解。
對計算機特定程序中需要反復執行的子程序*(一組指令),進行一次重復,即重復執行程序中的循環,直到滿足某條件為止,亦稱為迭代。
迭代器(Iterator)模式:
又叫做游標模式,它的含義是,提供一種方法訪問一個容器對象中各個元素,而又不需暴露該對象的內部細節。
注意:Java的集合框架的集合類,有的時候也稱為容器。
從定義上看,迭代器是為容器而生,它本質上就是一種遍歷的演算法。因為容器的實現千差萬別,很多時候不可能知道如何去遍歷一個集合對象的元素。Java為我們提供了使用迭代的介面,Java的所有集合類丟失進行迭代的。
簡單的說,迭代器就是一個介面Iterator,實現了該介面的類就叫做可迭代類,這些類多數時候指的就是java.util包下的集合類。
總結:
迭代器,提供一種訪問一個集合對象各個元素的途徑,同時又不需要暴露該對象的內部細節。java通過提供Iterator和Iterable倆個介面來實現集合類的可迭代性,迭代器主要的用法是:首先用hasNext()作為循環條件,再用next()方法得到每一個元素,最後在進行相關的操作。
(6)javaforstl擴展閱讀
首先,創建了一個List的集合對象,並放入了倆個字元串對象,然後通過iterator()方法得到迭代器。iterator()方法是由Iterable介面規定的,ArrayList對該方法提供了具體的實現,在迭代器Iteartor介面中,有以下3個方法:
1、hasNext()該方法英語判斷集合對象是否還有下一個元素,如果已經是最後一個元素則返回false
2、next()把迭代器的指向移到下一個位置,同時,該方法返回下一個元素的引用
3、remove() 從迭代器指向的Collection中移除迭代器返回的最後一個元素,該操作使用的比較少。
注意:從Java5.0開始,迭代器可以被foreach循環所替代,但是foreach循環的本質也是使用Iterator進行遍歷的。
❼ java裡面的for循環的格式: for(String s : arr)是什麼意思,能否詳細解釋一下
for的循環語句for(String s : args)這個格式是foreach的形式,表示取出數組args[]中的每一個元素,就是循環一次就依次取出一個元素賦值給s,知道取完為止java中的foreach也是用for表示具體語法分兩種:
第一種-數組for(type var : arr) {//循環體}示例(這里以List為例):List<String> list = new ArrayList<String>();for(String item : list){System.out.println("循環元素:" + item);}
第二種-非數組類可迭代對象for(type var : coll) {//循環體}示例:Map<String, String> map = new HashMap<String, String>();for(Entry<String, String> item : map.entrySet()){System.out.println("循環元素 key:" + item.getKey() + " value:" + item.getValue());}
其實本質上和for(int i=0;i<length;i++)沒太大區別,但是for(String s : arr)中的arr一定是字元串數組,每次循環取一個字元串出來賦值給s,直到arr數組長度-1結束。
(7)javaforstl擴展閱讀:
Java for循環的幾種用法:
在Java程序中,要「逐一處理」或者說,「遍歷」某一個數組或Collection中的元素的時候,一般會使用一個for循環來實現(當然,用其它種類的循環也不是不可以,只是不知道是因為for這個詞的長度比較短,還是因為for這個詞的含義和這種操作比較配,在這種時候for循環比其它循環常用得多)。
對於遍歷數組,這個循環一般是採取這樣的寫法:
清單1:遍歷數組的傳統方式
復制代碼 代碼如下:
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int j = 0; j < integers.length; j++) {
int i = integers[j];
System.out.println(i);
}
而對於遍歷Collection對象,這個循環則通常是採用這樣的形式:
清單2:遍歷Collection對象的傳統方式
復制代碼 代碼如下:
/* 建立一個Collection */
String[] strings = {"A", "B", "C", "D"};
Collection stringList = java.util.Arrays.asList(strings);
/* 開始遍歷 */
for (Iterator itr = stringList.iterator(); itr.hasNext();) {
Object str = itr.next();
System.out.println(str);
}
而在Java語言的最新版本――J2SE
1.5中,引入了另一種形式的for循環。藉助這種形式的for循環,現在可以用一種更簡單地方式來進行遍歷的工作。
1、 第二種for循環
不嚴格的說,Java的第二種for循環基本是這樣的格式:
for (循環變數類型 循環變數名稱 : 要被遍歷的對象) 循環體
藉助這種語法,遍歷一個數組的操作就可以採取這樣的寫法:
清單3:遍歷數組的簡單方式
復制代碼 代碼如下:
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int i : integers) {
System.out.println(i); /* 依次輸出「1」、「2」、「3」、「4」 */
}
這里所用的for循環,會在編譯期間被看成是這樣的形式:
清單4:遍歷數組的簡單方式的等價代碼
復制代碼 代碼如下:
/* 建立一個數組 */
int[] integers = {1, 2, 3, 4};
/* 開始遍歷 */
for (int 變數名甲 = 0; 變數名甲 < integers.length; 變數名甲++) {
System.out.println(integers[變數名甲]); /* 依次輸出「1」、「2」、「3」、「4」 */
}
這里的「變數名甲」是一個由編譯器自動生成的不會造成混亂的名字。
❽ 用Java里的for循環編譯出來
String[] strs=new String[]{"A","B","C","D","E","F","G"};
for(int i=0;i<strs.length;i++){
for(int j=strs.length-1;j>i;j--){
System.out.print(" ");
}
for(int k=0;k<i*2+1;k++){
System.out.print(strs[i]+" ");
}
System.out.println();
}
這段代碼直接放在main方法裡面運行就能輸出你要的效果了
❾ Java for循環的幾種用法詳解
1:遍歷數組的傳統方式
2:遍歷Collection對象的傳統方式
3:遍歷數組的簡單方式
4:遍歷數組的簡單方式的等價代碼