*Map接口

Map<k,v>接口中接收两个泛型,key和value的两个数据类型

Map中的集合中的元素都是成对存在的每个元素由键与值两部分组成,通过键可以找对所对应的值。值可以重复,键不可以重复。

Map接口的方法

put(k,v)

get(k)

remove()

1.put方法:将指定的键与值对应起来,并添加到集合中

方法返回值为键所对应的值

使用put方法时,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到集合中;

使用put方法时,若指定的键(key)在集合中存在,则返回值为集合中键对应的值(该值为替换前的值),并把指定键所对应的值,替换成指定的新值。

2.get方法:获取指定键(key)所对应的值(value)

3.remove方法:根据指定的键(key)删除元素,返回被删除元素的值(value)

Keyset()方法(该方法是Map的方法)

获取Map集合中的所有的key,并放入Set集合中

Map<String,Integer> m=new HashMap<String,Integer>();

Set<String> set=m.keySet();

Entry(是键值关系映射的对象,每个对象中存储key和对应的value)是Map接口中的一个静态内部接口,用Map.Entry<k,v>的方法调用,使用Map中的Entryset()方法返回Entry对象,并放入set集合中

Set<Map.Entry<String,Integer>> set=m.entryset();

(此处用到了泛型的嵌套,因为Entry接口为Map的内部静态接口,所以调用的时候需要用到Map.的方式进行调用,entrySet()方法是Map接口的方法,直接用Map调用)

//使用迭代器的方式对该Map集合进行遍历

  1. 使用Keyset()方法进行遍历

//定义一个Map集合

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

//向集合中添加元素

map.put(“ws”,18);

map.put(“nn”,17);

//使用Keyset()方法获取集合中的所有key,并放入Set集合

Set <String> set=map.Keyset();

(1)使用迭代器进行遍历

//创建迭代器对象

Iterator <String>it=map.iterator();

//使用循环进行迭代

while(it.hasNext()){

String key=it.next();

Integer value=map.get(s);

System.out.println(key+””+value);

}

(2) 使用增强for进行遍历

for(String s:set){

System.out.println(map.get());}

  1. 使用Entry进行遍历

//创建一个Map集合对象

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

//添加元素

map.put("ws", 18);

map.put("nn", 16);

map.put("pp", 21);

//调用entrySet()方法,将Entry对象放入Set集合

Set<Map.Entry<String, Integer>> set=map.entrySet();

(1) 使用迭代器进行遍历

//创建迭代器对象

Iterator<Map.Entry<String,Integer>> it=map.iterator();

//使用while循环进行遍历

while(it.hasNext()){

//使用Entry对象的getKey方法和getValue方法

Map.Entry<String,Integer> e=it.next();

String key=e.getKey();

Integer value=e.getValue();

System.out.println(key,value);

}

(2) 使用增强for循环遍历

for(Map.Entry<String,Integer> e:set){

System.out.println(e.getKey(),e.getValue());

}

Ps.

for(Map.Entry<String, Person> m:map.entrySet()){

System.out.println(m.getKey()+""+m.getValue());

}

map.entrySet()的返回值为一个set集合所以可以直接写入增强for循环,因为这个set集合中存储的是entry对象,所以,冒号左边为Map.Entry<String, Person>,此为entry对象

*方法的可变参数

格式:数据类型...变量名

可以再方法中传入任意个参数

如下方法

int i =function(1,2,3);

Public static int function(int...a){

int sum=0;

for(int i:a){

Sum+=i

}

Syso(sum)

}

int...a 这里的a就是一个int的数组,传入的参数将存入这个名为的数组中

Ps.1.一个方法中只能有一个可变参数 (int...a,int...b)错

2.参数类表中的可变参数必须放在左后面,(int a,int b,int...c)正确(如果放在前面,所传入的参数都会放入可变参 数的集合中,后面的参数将无法接收到参数)

java集合小知识的复习的更多相关文章

  1. Java基础小知识(一)

     序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...

  2. Java入门小知识

    软件开发什么是软件?  一系列按照特定顺序组织的计算机数据和指令的集合什么是开发?  制作软件 人机交互  软件的出现实现了人与计算机之间的更好的交互交互方式   图形化界面:这种方式简单直观,使用者 ...

  3. java基础小知识

    1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9)  ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...

  4. Java~时间戳小知识

    大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...

  5. Java基础小知识笔记

    1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...

  6. Java 集合基础知识 List/Set/Map

    一.List Set 区别 List 有序,可重复: Set 无序,不重复: 二.List Set 实现类间区别及原理 Arraylist 底层实现使用Object[],数组查询效率高 扩容机制    ...

  7. Java基础小知识1——分别使用字节流和字符流复制文件

    在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...

  8. Java集合框架知识总结

    两大体系:Collection,Map 一.Collection: List 接口 : List:里面对象全部是有序的(通过三种方法来遍历) ArrayList,LinkedList,Vertor A ...

  9. java算法小知识练习(二)

    话不多说,直接上题: 题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.   有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序 ...

随机推荐

  1. centos上的grub文件修改

    centos上的grub文件修改 author:headsen chen 2017-10-10  17:36:42 个人原创,转载请注明作者和出处,否则追究法律责任 1,centos6上的修改:vim ...

  2. PHP之防御sql注入攻击的方式

    长期以来,web的安全性存在着巨大的争议与挑战.其中,sql注入就是一种常见的一种攻击方法,开发人员普遍的做法就是不停的过滤,转义参数,可是我们php大法天生弱类型的机制,总是让黑客有机可乘,绕过防御 ...

  3. 二叉搜索树(Java实现)

    二叉搜索树基本操作 求树中的结点个数 判断节点是否为空 向树中插入新结点key-value 树中是否存在key 返回树中key对应的value值 先序遍历 中序遍历 后续遍历 层序遍历 求树中key最 ...

  4. Django+xadmin打造在线教育平台(三)

    五.完成注册.找回密码和激活验证码功能 5.1.用户注册 register.html拷贝到templates目录 (1)users/views.py class RegisterView(View): ...

  5. ELK学习笔记(五)简单搜索和DSL查询

    检索文档 现在我们有一些数据存储在Elasticsearch中,我们可以开始处理这个应用程序的业务需求. 这在Elasticsearch中很容易.我们只需执行HTTP GET请求并指定文档的地址--索 ...

  6. 基于docker 部署 canvas-lms

    准备:  一台8G内存的服务器.安装好docker, pull一个ubuntu镜像下来, 可以是最新版也可以是官方支持的14/ 16 Step 1: 启动docker容易加载ubuntu镜像.命令如下 ...

  7. Android 源代码结构

    简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的 ...

  8. python全栈学习--day3

    一.基础数据类型 基础数据类型,有7种类型,存在即合理. 1.int 整数 主要是做运算的 .比如加减乘除,幂,取余  + - * / ** %...2.bool 布尔值 判断真假以及作为条件变量3. ...

  9. 构造函数与析构函数(construction undergoing)

    构造函数和析构函数 一.构造函数: 1.普通构造函数:在对象被创建时利用特定的值构造对象,将对象初始化到一个特定的状态. 特性:构造函数的函数名和类名相同:没有返回值:在对象被创建时被自动调用:如果有 ...

  10. Beta 第三天

    今天遇到的困难: 组员对github极度的不适应 github的版本控制和协同化编程确实操作起来需要一定的熟练度,我们缺乏这种熟练度 Android Studio版本不一致项目难以打开的问题仍然无法解 ...