1. 程式人生 > >遍歷Map和List

遍歷Map和List

本部落格只關注單執行緒型別,為了便於記憶,Map中的HashTable等執行緒安全型別不在討論之列,單執行緒型別效率更高,且單執行緒可以通過加執行緒的方式變成執行緒安全的型別。

Map是成對放的,一放一對,分成KEY和VALUE。
List有序,可重複
Set無序,不可重複

常用Map的種類
Map:HashMap、TreeMap、Hashtable
1、HashMap:執行緒不安全,鍵、值不允許為null。
2、TreeMap:執行緒不安全、鍵、值不允許為null,底層二叉樹。
說明:
HashMap:底層是雜湊表資料結構。執行緒不同步。
TreeMap:底層是二叉樹資料結構,執行緒不同步,可用於給Map集合中的鍵進行排序。

常用List的種類
List:ArrayList、LinkedList
說明:遍歷用前者,頻繁插入刪除(尤其是是前端和末尾頻繁插入刪除)時用後者。

常用的Set的種類
Set:HashSet、TreeSet
類似於Map,後者可用於排序。

  • 遍歷Map
    1.用增強型for迴圈取
    既取鍵也取值
Map<String, String> map = new HashMap<String, String>();
1.for (String key : map.keySet()) {
   System.out.println("key= "+ key +
" and value= " + map.get(key)); }

只取value

for (String v : map.values()) {
   System.out.println("value= " + v);
}

2.用迭代器取值

Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, String> entry = it.next();
   System.out
.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }

3.用entry取

for (Map.Entry<String, String> entry : map.entrySet()) {
   System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  }

例子:修改Map

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "value1");
map.put("key2", "value2");
list.add(map);

for (Map<String, Object> m : list) {
   for (String k : m.keySet()) {
    if(m.containsKey("key1")){
    m.put("key1", "val1");
    }
       System.out.println(k + " : " + m.get(k));
   }
}
  • 遍歷List
    未知list長度
 while(iter.hasNext())  
        {  
            iter.next();  
            //System.out.println(iter.next());  
        }

已知list長度

 for(int i = 0; i < list.size(); i++)  
        {  
            list.get(i);  
            //System.out.println(list.get(i));  
        } 

增強型for迴圈

List<SdItemsVsImage> dtos =  (List<SdItemsVsImage>) sdItemsVsImageDao.findDataIsPage(dto);
for(SdItemsVsImage dts : dtos){
    ...         
}
  • 遍歷Set
    1.迭代遍歷:
Set<String> set = new HashSet<String>();  
Iterator<String> it = set.iterator();  
while (it.hasNext()) {  
  String str = it.next();  
  System.out.println(str);  
}  

2.for迴圈遍歷:

for (String str : set) {  
      System.out.println(str);  
}  

相關推薦

Java8新特性之forEach+Lambda 表示式MapList

今天來說一下Java8中forEach的簡單使用。我們使用對比的方式來看應該會看得更加清楚,更能理解: ============Java8之前的方式========== Map<String, Integer> items = new HashMap

MapList

本部落格只關注單執行緒型別,為了便於記憶,Map中的HashTable等執行緒安全型別不在討論之列,單執行緒型別效率更高,且單執行緒可以通過加執行緒的方式變成執行緒安全的型別。 Map是成對放的,一放一對,分成KEY和VALUE。 List有序,可重複 S

jdk8及以上 foreachmaplist

    //foreach功能,遍歷Map    public void queryMapExt(Map<String,Object> map){        map.forEach((k,v)->{            System.out.print

Java MapList、Set、陣列的方法

List<String> list = new ArrayList<String>(); list.add("aaa"); list.add("bbb"); list.add("ccc"); 方法一: 超級for迴圈遍歷 for(String attribute : list) {

maplist迴圈

1 //map遍歷(zmm是實體類) 2 3 Map<String, zmm> maps = new HashMap<String, zmm>(); 4 5 //給map存值; 6 7 maps.put(username, zmm); 8 9 /

Mybatis 中map 引數中的 list array 屬性

問題 在專案有中遇到批量刪除操作時,需要根據兩個屬性去刪除資料,其中一個是型別:type, 另一個是ids:陣列形式的id陣列。由於在官方文件中只是簡單的介紹foreach的用法,套用之後進行批量刪除操作:提示遍歷map中的array 屬性是無法獲取值。

Map的四種方式兩種刪除方式

首先,建立一個map並存入資料 Map<String,Integer> map=new HashMap<String,Integer>(); map.put("小李", 20); map.put("校長", 21); map.put("小王", 25);

Java集合Collection之方法總結(ListMap、Set)

一、簡介 實際專案中,通常會用到迴圈遍歷List、Map等,今天有空總結了一下List/Map/Set的遍歷方法,如下: 二、List遍歷 List遍歷的方法一般有三種:  【a】使用普通的for迴圈; 【b】使用增強for迴圈; 【c】使用Iterator介

Struts2的OGNL陣列、List、簡單的Map

一、簡介 <s:iterator />可以遍歷資料棧裡面的任何陣列,集合等等 在使用這個標籤的時候有三個屬性值得我們關注1. value屬性:可選的屬性,value屬性是指一個被迭代的集合,使用ognl表示式指定,如果為空的話預設就是ValueStack棧頂的集合. 2.id屬性:可選屬性, 是

Map的兩種方法:keySet()entrySet()

Map map=new HashMap(); Iterator it=map.keySet().iterator(); Object key; Object value; while(it.hasNext()){ key=it.next(); value=map.get(key); Syste

Thymeleaf——th:eachMap List

@RequestMapping("/4") public Object a3(Model model){ Map<String,User> map1=new HashedMap(); User user1; for(int i=0;i<10;i++) {

java基礎--關於mapkeySetentrySet

首先是一個 關於遍歷的小例子: public static void main(String[] args) { // TODO Auto-generated method stub Map<String, String> map

List Map

四種 port 內容 each 擔心 方法 ring void next 遍歷 ArrayList import java.util.*; public class Test{ public static void main(String[] args) {

MapKeySet()EntrySet的效能差異與原始碼解析

Set<Entry<String, String>>entrySet =map.entrySet(); Set<String>set=map.keySet();` 上面就是我們經常用Map進行遍歷的兩種方式,在此對比一下兩者的

Java中Map的兩種方法:keySetentrySet

//方法一 Set<String> set = map.keySet(); for (String s:set) { System.out.println(s+","+ma

jsp 頁面中用struts2 標籤集合(list map

1,list: public class ListTestAction extends ActionSupport { private List<String> list1; private List<User> list2;

JSTL陣列,List,Set,Map

<%@pagelanguage="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%&g

map

sys htm shm key .com ext hashmap iter system public static void main(String[] args) { Map<String, String> map = new HashMap<St

Map的方法

get str 不足 while set entryset keyset entry date 集合在Java開發中的使用率還是比較高的,下面我們談一談如何遍歷集合中的Map。 筆者寫這篇文章前也百度了網上其他博主的文章,說是有四種五種這麽多,筆者仔細看了代碼後發現,其實主

Map集合的幾種方式

set password stat class ati put 獲取 map hashmap 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 im