好程式設計師大資料學習路線分享Map學習筆記
好程式設計師大資料學習路線分享Map學習筆記,set 底層是預設 value 的 map
Map 的常用方法
// 介紹 Map 介面的方法
Map<String, String> map = new HashMap<>();
//1. 增加
//V put(K key,V value) 增加一個鍵值對
// 關於返回值 , 如果當前的 key 之前沒有新增過 , 返回 null. 如果當前的 key 之前已經存在了 , 這裡返回之前的值
//void putAll(Map<? extends K,? extends V> map) 增加多個
//2. 刪除
//V remove(Object key) 根據 key 刪除元素
// 返回值就是被刪掉的值
//void clear() 刪除全部 != null
//3. 獲取
//V get(Object key) 根據 key 查詢元素
//int size() 獲取鍵值對的個數
//Set<K> keySet() 遍歷方法一
//Set<Map.Entry<K,V>> entrySet() 遍歷方法二
//4. 常用的判斷
//boolean isEmpty() // 空 map!=null
//boolean containsKey(K key) 是否包含當前的 key
//boolean containsValue(V value) 是否包含當前的 value
## 一、 HashMap
底層是雜湊表,執行緒不安全
** 雜湊表結構 **
![yuanli](G:\bigdata\week2\7-31\ 資料 \hash 表 \Hash 表 .assets\yuanli.png)
### 2.HashMap 與 HashTable 區別
1.HashTable 是執行緒安全的
2.HashTable 的 key 不能為空
## 二、 TreeMap
底層是二叉樹,執行緒不安全
/*
* TreeMap 的注意點 :
* 1. 什麼型別的資料型別可以作為 key?
* a: 實現了 Comparable 介面的 compareTo() 方法 b: 實現了 Comparator 介面的 compare() 方法
* 可以的代表 :String, 包裝類 , 自定義的實現了要求的類
* 不可以的代表 : 陣列 ,ArrayList,LinkedList( 如果給他們建立的比較器也可以比較 , 但是不建議使用 )
*
* 2. 元素可不可以作為 key, 跟元素內部的成員有沒有關係
* 元素可不可以作為 key, 跟元素內部的成員有沒有關係
*/
public class Demo5 {
public static void main(String[] args) {
TreeMap<Dog, String> map = new TreeMap<>();
// 如果沒有重寫 compareTo 或者 compare 方法 ,put 內部無法呼叫元素的這兩個方法 . 所以會報錯
map.put(new Dog(), "haha");
}
}
class Dog implements Comparable<Dog>{
//2. 元素可不可以作為 key, 跟元素內部的成員有沒有關係
Object object;
@Override
public int compareTo(Dog o) {
// TODO Auto-generated method stub
return 0;
}
}
```
# 可變引數
```
public static void main(String[] args) {
sum(2, 3);// 值傳遞
// 址傳遞
int[] arr = {3,4,5};
sum(arr);
// 可變引數
// 可變引數的特點
//1. 給可變引數傳值的實參可以直接寫 , 個數不限制 , 內部會自動的將他們放入可變陣列中 .
sum1(5,6,7,8,9,3,3,4);
//2. 當包括可變引數在內有多個引數時 , 可變引數必須放在最後面 , 並且一個方法中最多隻能有一個可變引數
sum2(6,3);
//3. 當可變引數的方法與固定引數的方法是過載關係時 , 呼叫的順序 , 固定引數的優先於可變引數的 .
sum3(2,3);
}
// 求兩個數的和
// 值傳遞
public static int sum(int a,int b) {
return a+b;
}
// 址傳遞
public static int sum(int[] a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
// 透過可變引數
// 構成 : 資料型別 +... 實際上就是資料型別 [] 即 :int[]
public static int sum1(int... a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
return sum;
}
//2. 當包括可變引數在內有多個引數時 , 可變引數必須放在最後面 , 並且一個方法中最多隻能有一個可變引數
public static void sum2(float b,int... a) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
sum+=a[i];
}
System.out.println(sum);
}
//3. 當可變引數的方法與固定引數的方法是過載關係時 , 呼叫的順序 , 固定引數的優先於可變引數的 .
public static int sum3(int a, int b) {
System.out.println("a");
int sum = 0;
return sum;
}
public static int sum3(int... a) {
System.out.println("b");
int sum = 0;
return sum;
}
```
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2658607/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料學習路線分享Actor學習筆記程式設計師大資料筆記
- 好程式設計師大資料學習路線分享TCP和UDP學習筆記程式設計師大資料TCPUDP筆記
- 好程式設計師大資料學習路線分享執行緒學習筆記二程式設計師大資料執行緒筆記
- 好程式設計師大資料學習路線分享多執行緒學習筆記程式設計師大資料執行緒筆記
- 好程式設計師大資料學習路線分享Hbase指令學習程式設計師大資料
- 好程式設計師大資料學習路線分享MAPREDUCE程式設計師大資料
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- 好程式設計師大資料學習路線分享函式+map對映+元祖程式設計師大資料函式
- 好程式設計師大資料學習路線分享Scala系列之對映Map程式設計師大資料
- 好程式設計師大資料學習路線Hadoop學習乾貨分享程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享HDFS學習總結程式設計師大資料
- 好程式設計師大資料學習路線分享hdfs學習乾貨程式設計師大資料
- 好程式設計師大資料學習路線分享大資料之字串程式設計師大資料字串
- 好程式設計師大資料學習路線分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料學習路線分享AWK詳解程式設計師大資料
- 好程式設計師大資料學習路線分享UDF函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料學習路線分享Lambda表示式程式設計師大資料
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料學習路線分享Scala系列之物件程式設計師大資料物件
- 好程式設計師大資料學習路線分享Hadoop機架感知程式設計師大資料Hadoop
- 好程式設計師大資料學習路線分享大資料之執行緒程式設計師大資料執行緒
- 好程式設計師大資料學習路線之大資料自學路線二程式設計師大資料
- 好程式設計師大資料學習路線之大資料自學路線一程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全過程解析程式設計師大資料
- 好程式設計師大資料學習路線分享hive的執行方式程式設計師大資料Hive
- 好程式設計師大資料學習路線分享什麼是Hash表程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之抽象類程式設計師大資料抽象
- 好程式設計師大資料學習路線分享Scala系列之陣列程式設計師大資料陣列
- 好程式設計師大資料學習路線分享Scala分支和迴圈程式設計師大資料
- 好程式設計師大資料學習路線分享MapReduce全流程總結程式設計師大資料
- 好程式設計師大資料學習路線分享Scala系列之泛型程式設計師大資料泛型
- 好程式設計師大資料學習路線分享大資料之基礎語法程式設計師大資料
- 好程式設計師Java學習路線分享SpringCloud程式設計師JavaSpringGCCloud
- 好程式設計師大資料學習路線Hbase總結程式設計師大資料
- 好程式設計師大資料學習路線之mapreduce概述程式設計師大資料
- 好程式設計師大資料學習筆記:Storm架構程式設計師大資料筆記ORM架構
- 好程式設計師大資料學習路線分享hive分割槽和分桶程式設計師大資料Hive