javaforremove
⑴ 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結束。
(1)javaforremove擴展閱讀:
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或foreach遍歷數組問題。
自從Java5中引入了foreach語句之後,在循環遍歷數組、集合方面帶來了極大的方便,但是在用foreach的時候也要注意其與for循環是不能完全劃等號的。
在使用foreach遍歷數組集合的過程中一定要注意不要修改其內容,在Java程序中會進行報錯,但是在有些時候沒有錯誤提示,就會造成花很多時間找不到問題所在。
⑶ Java中foreach添加String數組到List集合,有沒有更簡潔的方式
在Java編程中,將一個String數組添加到List集合中,可以採用多種簡潔的方式實現。一種常見的方法是使用Arrays.asList()方法直接將數組轉換為List。例如:List<String> list = Arrays.asList(str);這種方式可以直接將數組轉換為集合,但需要注意的是,返回的List是一個固定大小的不可變列表。如果需要添加或移除元素,可以考慮將其轉換為ArrayList,如下所示:List<String> list = new ArrayList<>(Arrays.asList(str));
此外,還可以直接創建一個新的String數組,並使用Arrays.asList()方法將其轉換為List。這種方式可以更直觀地展示添加元素的過程:List<String> list = Arrays.asList(new String[]{"a", "b", "c"});然而,這種方式同樣返回一個固定大小的不可變列表。如果需要動態地添加或刪除元素,可以考慮使用ArrayList,並手動添加元素。
在實際編程中,根據需求選擇合適的方法至關重要。如果需要一個固定大小的不可變列表,直接使用Arrays.asList()即可。但如果需要一個可以動態修改的列表,建議先將數組轉換為ArrayList,然後使用add()或remove()方法進行操作。
值得注意的是,直接將數組轉換為List後,如果嘗試修改List中的元素,將會拋出UnsupportedOperationException異常。這是因為Arrays.asList()方法返回的是一個固定大小的不可變列表。為了避免這種情況,可以使用ArrayList來包裝List,如下所示:List<String> list = new ArrayList<>(Arrays.asList(str));這樣既保留了數組的簡潔性,又允許對List進行動態修改。
綜上所述,將String數組添加到List集合中,有多種簡潔的方式可以選擇。根據具體需求,選擇合適的方法可以提高代碼的可讀性和靈活性。