日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

增强for循环,Map,集合应用

發布時間:2024/9/27 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 增强for循环,Map,集合应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3. 增強for循環

1) 作用:

?對存儲對象的容器進行迭代??

2)? jdk5以前怎么迭代

3) 增強for循環迭代數組

String [] arr = {"a", "b","c"};?? //數組的靜態定義方式,只試用于數組首次定義的時候

// 傳統方式

for(int i=0; i<arr.length; i++) {

??? // i依次表示數組的角標

??? String s =arr[i];

??? System.out.println(s);

}

System.out.println("-------------------------------------");

// 在jdk5中我們可以使用增強for循環迭代

// 增強for循環括號里寫兩個參數,第一個是聲明一個變量,變量類型必須是數組元素的類型

// 第二個就是需要迭代的容器

// for循環會循環容器的length次, 每次都將容器的第n-1個元素賦值給聲明的變量

for(String s : arr) {

??? // 循環體, 執行arr.length

??? // 每次都將arr中的第n-1個元素給s

??? System.out.println(s);?? //

}

?

4) 單列集合 Collection

List list = new ArrayList();

list.add("aaa");

list.add("bbb");

list.add("ccc");

?

// 傳統方式1

/* 1.獲得迭代器

Iterator iter = list.iterator();

// 2.循環判斷迭代器是否有下一個

while(iter.hasNext()) {

??? String str= (String) iter.next(); // 將迭代器的指針移向下一個,并將迭代當前指向的元素返回

??? System.out.println(str);

}

*/

// 傳統方式2

for(Iterator iter=list.iterator(); iter.hasNext(); ){

??? String s =(String) iter.next();

??? System.out.println(s);

}

System.out.println("--------------------------------");

// 增強for循環, 沒有使用泛型的集合能不能使用增強for循環迭代?能

for(Object obj : list) {

??? String s=? (String) obj;

??? System.out.println(s);

}

?

5) 雙列集合 Map

Map map = new HashMap();

map.put("a", "aaa");

map.put("b", "bbb");

map.put("c", "ccc");

?

// 傳統方式迭代1

// 1. 獲得所有的key

Set keys = map.keySet();

// 2.迭代keys獲得所有的key

Iterator iter = keys.iterator();

while(iter.hasNext()) {

??? String key= (String) iter.next(); // a b c

??? // 3.根據key獲得對應的value

??? Stringvalue = (String) map.get(key);

??? System.out.println(key+ "=" + value);

}

System.out.println("---------------------------------");

// 傳統方式2,必須掌握這種方式

// 1.獲得所有的鍵值對Entry對象

Set entrys = map.entrySet();

// 2.迭代出所有的entry

iter = entrys.iterator();

while(iter.hasNext()) {

??? Map.Entryentry = (Entry) iter.next();

??? // 分別獲得key和value

??? String key= (String) entry.getKey();

??? Stringvalue = (String) entry.getValue();

??? System.out.println(key+ "=" + value);

}

System.out.println("-------------------------------------");

System.out.println("增強for循環迭代,");

// 增強for循環迭代,

// 原則上map集合是無法使用增強for循環來迭代的,

// 因為增強for循環只能針對實現了Iterable接口的集合進行迭代

// Iterable是jdk5中新定義的接口,就一個方法iterator方法

// 只有實現了Iterable接口的類,才能保證一定有iterator方法

// java有這樣的限定是因為增強for循環內部還是用迭代器實現的

?

// 而實際上,我們可以通過某種方式來使用增強for循環

for(Object obj : map.entrySet()) {

??? // obj 依次表示Entry

??? Map.Entryentry = (Entry) obj;

??? System.out.println(entry.getKey()+ "=" + entry.getValue());

}

6)集合迭代注意問題

// 在使用迭代器迭代集合的過程中,不能對集合進行增刪操作

@Test

public void test4() {

??? List list =new ArrayList();

???

??? list.add("wangwu");

??? list.add("zhangsan");

??? list.add("lisi");

?

??? Iteratoriter = list.iterator();

??? while(iter.hasNext()){

?????? Stringname = (String) iter.next();

?????? if("wangwu".equals(name)){

?????????? // 從集合中刪掉

?????????? //list.remove(name);

?????????? // 迭代過程中刪除元素需要調用迭代器的方法

?????????? iter.remove();??? // 刪除我迭代的集合被我迭代的最后一個元素

?????? }

??? }

// 1 2 4

??? System.out.println(list.size());

}

?

@Test

public void test5() {

??? List list =new ArrayList();

???

??? list.add("aa");

??? list.add("bb");

???

??? // 使用ListIterator迭代器

??? ListIteratorlistIterator = list.listIterator();

??? while(listIterator.hasNext()){

?????? listIterator.next();

?????? // 迭代過程中增加元素

?????? listIterator.add("cc");

??? }

??? System.out.println(list.size());

}

7) 增強for循環注意問題

//在使用增強for循環時,不能對元素進行賦值

int[] arr = {1,2,3};

?

for(int num : arr) {

??? num = 0;

}

?

System.out.println(arr[1]);

?

總結

以上是生活随笔為你收集整理的增强for循环,Map,集合应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。