集合

集合


HashMap集合簡介

概述

1. 表示雙列集合,鍵具有唯一性,值是可以重複的。生活中我們用過詞典,詞典通過目錄索引可以找到對應的單詞。在Java裏面的HashMap就類似於詞典中的目錄索引。
2. HashMap裏邊用key/value(鍵值對)存儲數據,key就是鍵,value就是值。

HashMap的初始化

例:  HashMap<String,Integer> map = new HashMap<>();

Java中,集合的前後<>號中的泛型必須一致,或者後邊<>號中的泛型可以省略不寫
這是JDK1.7的新特性,菱形泛型

泛型

常用數據類型及其包裝類(引用類型)

概述

泛指某種特定的數據類型, 表示形式爲: <>
大白話: 泛型就是用來確定, 集合中將要添加什麼類型的數據.
好處:提高代碼安全性
注意點:
1. 泛型只能是引用數據類型
2. 泛型一般只和集合結合使用

包裝類
概述:其實就是基本數據對應的引用數據類型。

各基本數據類型對應的包裝類:

基本數據類型 引用數據類型(包裝類)
byte Byte
short Short
char Character
int Integer
long Long
float float
double Double
boolean Boolean

自動拆裝箱(JDK1.5的新特性)

自動裝箱: 就是把基本類型的數據轉成對應的引用數據類型.
* Integer i = 10;
自動拆箱: 就是把引用類型的數據轉成對應的基本數據類型.
* Integer i = 10;
* int a = i;


HashMap集合常用方法總結

put();往集合中添加元素.
如果是第一次添加就返回null, 如果是重複添加會用新值來覆蓋舊值,並返回舊值.
remove(); 根據鍵刪除該鍵值對.
如果鍵存在,就返回刪除之前的值, 如果鍵不存在,返回null.
get();根據鍵獲取對應的值,如果鍵不存在, 返回null。
size();獲取集合的長度(這裏的長度指的是 鍵值對對象的 個數)
isEmpty(); 判斷集合是否爲空
containsKey();判斷集合是否包含給定的鍵
containsValue();判斷集合是否包含給定的值
clear(); 清空集合中的元素


雙列集合的遍歷方式

第一種:根據鍵獲取值
1. 獲取到所有鍵的集合
2. 遍歷,獲取到每個鍵。
3. 根據鍵獲取值。
示例代碼:

public class Test{
    public static void main(String[] args){
       HashMap<String,Interger> hm = new HashMap<>();//菱形泛型
       hm.put("張三"22);
       hm.put("李四"23);
       hm,put("wangwu",25);
    //遍歷雙列集合
    for(String key:hm.keySet()){
        System.out.println(key+"----->"+hm.getValue(key));
    }
    }
}

第二種:直接遍歷集合
示例代碼:

public class Test{
    public static void main(String[] args){
       HashMap<String,Interger> hm = new HashMap<>();//菱形泛型
       hm.put("張三"22);
       hm.put("李四"23);
       hm,put("wangwu",25);
    //遍歷雙列集合
   for(Entry<String, Integer> map: hm.entrySet()){
            System.out.print(map.getKey()+"------>"+map.getValue());
        }
    }
}

ArrayList集合簡介

一般我們在存放一組相同數據類型的數據時,就用數組,可是在很多時候我們不知道到底有多少數據需要存儲,這時候我們就可以使用到集合,但是對於雙列集合而言,我們不知道key就很難把數據取出來,所以就用到了ArrayList

ArrayList的初始化

例: ArrayList list = new ArrayList<>();
與HashMap的初始化是一樣的。


ArrayList中的常用方法:

add() 往集合中添加元素
get() 根據索引, 獲取對應的元素.
如果索引不存在,會報索引越界異常: IndexOutOfBoundsException
set() 根據給定的索引和元素, 修改對應位置的值.如果索引不存在,會報索引越界異常:IndexOutOfBoundsException
remove()根據索引移除對應的元素.
索引不存在會報索引越界異常:IndexOutOfBoundsException


集合和數組的相互轉換

集合轉數組:
Arrays#toArray()把集合對象轉換成對應的數組形式。
數組轉集合:
Arrays#asList() 把數組對象轉換成其對應的集合形式。

如果是基本類型的數組轉成集合,是把整個數組對象當作集合中的一個元素來轉的,而且在數組轉成集合後不能向集合中增加或者刪除元素,但是可以修改元素。


相關面試題

一.數組與集合的區別是什麼?
  1.長度不同
    (1)數組的長度是固定的。
    (2)集合的長度是可變的。
  2.存儲的數據元素類型不同
    (1)數組:既可以存基本數據類型            ,也可以存放引用數據類型。
    (2)集合:只能存儲引用數據類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章