1. 程式人生 > >Map集合例項練習三--HashMap與arrayList的幾種遍歷方式,重點!請一定要掌握熟練

Map集合例項練習三--HashMap與arrayList的幾種遍歷方式,重點!請一定要掌握熟練

    本章節是基於例項練習一與練習二的練習例項:

以下是string的常用判斷,在實際開發中,經常使用到。

1 isNotEmpty(str)等價於 str != null && str.length > 0
2 isNotBlank(str) 等價於 str != null && str.length > 0 && str.trim().length > 0
3 同理
4 isEmpty 等價於 str == null || str.length == 0
5 isBlank  等價於 str == null || str.length == 0 || str.trim().length == 0
6 str.length > 0 && str.trim().length > 0  --->   str.length > 0

ArrayList的幾種遍歷方式:

package cn.arrays;
import java.util.ArrayList;
public class ArrayList2 {
	public static void main(String[] args) {
		//建立一個arraylist集合,遍歷arrayList集合
		ArrayList<String> list = new ArrayList<String>();
		list.add("加油");
		list.add("努力");
		list.add("奮鬥");
		list.add("自信");
		System.out.println("arrayList集合遍歷,方法一");
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		System.out.println("arrayList集合遍歷,方法二");
		for (String a : list) {
			System.out.println(a);
		}
	}
}

以上輸出結果:

arrayList集合遍歷,方法一
加油
努力
奮鬥
自信
arrayList集合遍歷,方法二
加油
努力
奮鬥
自信
 

HashMap的幾種遍歷方式:

package cn.collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class TestMap2 {
    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "努力");
        map.put(2, "加油");
        map.put(3, "奮鬥");
        map.put(4, "自信");
        map.put(5, "永不放棄");// 和上面相同 , 會自己篩選
        System.out.println("size的大小"+"...."+map.size());
        
        System.out.println("第一種:通過Map.keySet遍歷key和value:");
        for (Integer in : map.keySet()) {
            //map.keySet()返回的是所有key的值
            String str = map.get(in);//得到每個key多對用value的值
            System.out.println(in + "     " + str);
        }
        // 第二種:
        System.out.println("第二種:通過Map.entrySet使用iterator遍歷key和value:");
        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
        while (it.hasNext()) {
             Map.Entry<Integer, String> entry = it.next();
               System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }
        // 第三種:推薦,尤其是容量大時
        System.out.println("第三種:通過Map.entrySet遍歷key和value");
        for (Map.Entry<Integer, String> entry : map.entrySet()) {
            //Map.entry<Integer,String> 對映項(鍵-值對)  有幾個方法:用上面的名字entry
            //entry.getKey() ;entry.getValue(); entry.setValue();
            //map.entrySet()  返回此對映中包含的對映關係的 Set檢視。
            System.out.println("key= " + entry.getKey() + " value= "
                    + entry.getValue());
        }
        // 第四種:
        System.out.println("第四種:通過Map.values()遍歷所有的value,但不能遍歷key");
        for (String v : map.values()) {
            System.out.println("value= " + v);
        }
        //增強for一定要掌握,使用keySet
        System.out.println("這個一定要掌握,使用keySet");
        for (Integer a : map.keySet()) {
        	 System.out.println(a + "     " + map.get(a));
		}
    }
}

以上輸出的結果為:

size的大小....5
第一種:通過Map.keySet遍歷key和value:
1     努力
2     加油
3     奮鬥
4     自信
5     永不放棄
第二種:通過Map.entrySet使用iterator遍歷key和value:
key= 1 and value= 努力
key= 2 and value= 加油
key= 3 and value= 奮鬥
key= 4 and value= 自信
key= 5 and value= 永不放棄
第三種:通過Map.entrySet遍歷key和value
key= 1 value= 努力
key= 2 value= 加油
key= 3 value= 奮鬥
key= 4 value= 自信
key= 5 value= 永不放棄
第四種:通過Map.values()遍歷所有的value,但不能遍歷key
value= 努力
value= 加油
value= 奮鬥
value= 自信
value= 永不放棄
這個一定要掌握,使用keySet
1     努力
2     加油
3     奮鬥
4     自信
5     永不放棄

總結:         

       1.執行緒安全的是vertor和HashTable。
       2. List:允許重複的,全部有序(允許null)。
  3.Set: HashSet無序的表現(一個null),其中HashSet的子類LinkedHashSet有序,TreeSet有序。
  4.Map:HashMap無序的表現(一次null),其中HashMap的子類LinkedHashMap有序,TreeMap有序,HashTable無序(不能為null)。

  5.ArrayList:查詢效率高,增刪效率低。
  6.LinkedList:查詢效率低,增刪效率高。
  7.Vertor:執行效率非常低。

  8.HashSet:良好的增刪查詢效能。
  9.LinkedHashSet:查詢效率低,插入效率比HashSet低。

  10.Map物件高於List。因為Map除了Value外還需要一個Object的Key,從而增大了Map的容量。

     11. HashSet,HashMap的元素都是無序的,而他們的子類都是有序的,雙向連結串列,非常類似,因為HashMap中的唯一的約束就是key,而 key恰恰是被HashMap維護的
       12.TreeSet和TreeMap都是有序的,兩個很類似。

       13. 如果Map知道了Key,List知道了index,其效能在一百萬條資料中無多大差別。

   14.List按物件進入的順序儲存物件,不做排序或編輯操作。Set對每個物件只接受一次,並使用自己內部的排序方法(通常,你只關心某個元素是否屬於 Set,而不關心它的序否則應該使用List)。Map同樣對每個元素儲存一份,但這是基於"鍵"的,Map也有內建的排序,因而不關心元素新增的 順序。如果新增元素的順序對你很重要,應該使LinkedHashSet或者LinkedHashMap。

      15.HashMap就是使用物件的hashCode()進行快速查詢的。此方法能夠顯著提高效能。

簡單資料結構

資料結構指的資料儲存和組織方式,如日常的容器中,有方形、圓形、存放液體、固體,都是。

我們在前邊見到了多種不同結構的集合,每種集合有各自資料結構特點,總結如下:

陣列結構:一塊連續的儲存區域

連結串列結構:每個元素指向下一個元素

佇列結構:容器先進先出的規則

棧結構:容器先進後出規則

相關推薦

Map集合例項練習--HashMaparrayList方式重點一定掌握熟練

    本章節是基於例項練習一與練習二的練習例項: 以下是string的常用判斷,在實際開發中,經常使用到。 1 isNotEmpty(str)等價於 str != null && str.length > 0 2 isNotBlank(str) 等

Map集合的四方式自己記錄方便以後查詢參考

for 映射 while entryset 返回 方式 bsp rgs put 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 publi

Map集合方式

 import java.util.HashMap;  2 import java.util.Iterator;  3 import java.util.Map;  4   5 public class TestMap {  6     public static void

Map集合和List集合方式

++++++++++++++++++++++List集合遍歷++++++++++++++++++++++++++++++++++++++++++++++publicstaticvoid main(Str

Java基礎及提高 之 陣列ListSetMap方式

一,陣列的遍歷方式 陣列有兩種遍歷方式: public class ArrayXunhuan { public static void main(String[] args) { int[

【演算法模板】二叉樹的方式以及根據兩方式建樹

前言:今年九月份的PAT考試就栽在這“兩種遍歷建樹”上了,剛好沒看,剛好考到。作為自己的遺憾,今日碼完,貼在這裡留個紀念,希望能給自己警醒與警鐘。 簡要概括: 1、二叉樹的三種遍歷方式分別是 先序(先根)遍歷PreOrder,中序(中根)遍歷InOrder,後序(後根

list的方式及其效率ArrayList和LinkedList的結構

話不多說,上程式碼:  @Test public void testListSeq(){ List<String> list = new ArrayList<String>(); // List<String> list = ne

二叉樹方式先序、中序、後序

二叉樹遍歷方式分為三種:先序,中序和後序。 可以以根節點的位置為參考來記遍歷方式,在第一個為先序,中間為中序,最後為後序; 即:先序: 根左右;中序:左根右;後序:左右根。 借個圖: 每個節點左上角,底部,右上角分別對應先序,中序,後序時的取值點

Map集合例項練習

本篇主要講解hashMap的遍歷:!!!!!!!!!!!!!這可以是重點之重,一定要掌握運用!!!! 遍歷方式1 :  通過鍵的集合,獲取值 . package cn.map2; import java.util.Collection; import java.ut

MapHashMapTreeMap的排序以及四方式

一、Map概述 1、Map是將鍵對映到值( key-value )的物件。一個對映不能包含重複的鍵;每個鍵最多隻能對映到一個值。 2、Map與Collection的區別     (1)Map 是以鍵值對的方式儲存元素,鍵唯一,值可以重複。   &nb

Map集合方式

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class

集合方式

叠代器 whl print 循環 下一個 sys 三種 iterator for 1、for循環 代碼實現: for(int i=0;i<list.size();i++){ product p=list.get(i); System.println(p); } 2、叠

Map方式

package com.qf.day13; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.

Java中List集合方式效率的比較)

public static void main(String args[]){ compare(); } public static void compare() { List<String> list = new ArrayList

java集合方式以及各自優缺點分析

1、Iterator介面 Iterator是Java集合框架的成員,主要用於遍歷(即迭代訪問)Collection集合中的元素,也稱為迭代器。 提供的三種方法: boolean hasNext():返回集合裡的下一個元素。 Object next():

使用泛型後的List集合型別的方式

我們常用的集合型別有三種基本型別:List,Set和Map型別,其中運用泛型過後的這三種類型當中,List有三種遍歷方式,Set和Map有兩種遍歷方式,而List這三種方式當中包含了Set和Map的另外兩種遍歷方式,因此我們以List為例. 遍歷泛型List集合的三種方法包

ArrayList方式比較

方法一:普通for迴圈遍歷 //僅做程式碼的格式說明,不涉及具體問題 for(int i = 0 ; i < list.size() ; i++){  system.out.println(list.get(i));  } 方法二:增強f

set集合方式

1.利用迭代器進行 ,迭代遍歷:Set<Object> sets = new HashSet<Object>();Iterator<Object> it = set.iterator();while (it.hasNext()) {  S

Map集合的兩方式

import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; pu

hashMap方式

public void testClass(){ HashMap<String, String> hashMap = new HashMap<String,