*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. 微信小程序之swiper组件高度自适应

    微信小程序之swiper组件高度自适应 要求: (顶部广告栏 ) 改变swiper组件的固定高度,使之随内部每张图片的高度做自适应 原理: 图片加载完之后,获取图片的原始宽高,根据宽高比,计算出适应后 ...

  2. 数据库 --> SQL Server 和 Oracle 以及 MySQL 区别

    SQL Server 和 Oracle 以及 MySQL 区别 三者是目前市场占有率最高(依安装量而非收入)的关系数据库,而且很有代表性.排行第四的DB2(属IBM公司),与Oracle的定位和架构非 ...

  3. JQuery代码实现上拉加载(不使用插件)

    <script type="text/javascript"> $(window).scroll(function() { //已经滚动到上面的页面高度 var sl_ ...

  4. java基础--封装

    封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处:将变化隔离:便于使用:提高重用性:安全性. 封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共 ...

  5. pip遇见的format问题

    这是pip升级以后的问题. DEPRECATION: The default format will switch to columns in the future. You can use –for ...

  6. Tomcat服务器的常用配置

    1.如何修改端口号, tomcat启动后经常会报端口冲突, 怎么办 如果部署在Linux环境下面, 首先使用netstat -apn命令检查是否是真的端口已经被占用了 如果真的被占用,进入tomcat ...

  7. Nginx出现500 Internal Server Error 错误的解决方案

    500(服务器内部错误) 服务器遇到错误,无法完成请求. 501(尚未实施) 服务器不具备完成请求的功能.例如,当服务器无法识别请求方法时,服务器可能会返回此代码. 502(错误网关) 服务器作为网关 ...

  8. java错题集

    解析:java中,JavaDoc注释以 /** 开头(中间写内容)以*/结尾 解析:A对象是类的实例,不是集合,其余正确 解析:创建一个对象的语法为: 类名 对象名=new 类名();,因此正确答案为 ...

  9. struct2_拦截器知识点.

    Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表,最后一个 ...

  10. Struts2学习笔记五 拦截器

    拦截器,在AOP中用于在某个方法或字段被访问之前,进行拦截,然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. Struts2中,拦截器是动态拦截Action调用的对象.它提供了一种机制可以使 ...