map根据key删除_好程序员大数据学习路线分享Map学习笔记

​ 好程序员大数据学习路线分享Map学习笔记,set底层是默认value的map

0072a97c73515a06250991b5ae693f66.png

好程序员大数据培训

Map的常用方法

//介绍Map接口的方法

Map 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 keySet() 遍历方法一

//Set> entrySet() 遍历方法二

//4.常用的判断

//boolean isEmpty() //空map!=null

//boolean containsKey(K key) 是否包含当前的key

//boolean containsValue(V value) 是否包含当前的value

一、HashMap

​ 底层是哈希表,线程不安全

​ **哈希表结构**

![yuanli](G:bigdataweek27-31资料hash表Hash表.assetsyuanli.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 map = new TreeMap<>();

//如果没有重写compareTo或者compare方法,put内部无法调用元素的这两个方法.所以会报错

 map.put(new Dog(), "haha"); }}

class Dog implements Comparable{

//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; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值