温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Map的常用方法有哪些

发布时间:2021-12-22 15:27:02 来源:亿速云 阅读:179 作者:iii 栏目:开发技术

本篇内容主要讲解“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;

}

```

到此,相信大家对“Map的常用方法有哪些”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

map
AI