*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. python 练完这些,你的函数编程就ok了

    文件处理相关 1,编码问题 (1)请问python2与python3中的默认编码是什么? python 2.x默认的字符编码是ASCII,默认的文件编码也是ASCII python 2.x默认的字符编 ...

  2. Java中常见的URL问题及解决方案

    URL无处不在,不过似乎开发人员并没有真正地理解它们,因为在Stack Overflow上经常看到有人在问如何正确的创建一个URL.想知道URL语法是如何工作的,可以看下兄弟连教育总结的这篇文章,非常 ...

  3. uuid原理及使用例子

    项目中常用UUID作为唯一标识码 UUID是128位整数(16字节)的全局唯一标识符 由以下几部分的组合: 当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一 ...

  4. Mycat 分片规则详解--日期范围 hash 分片

    实现方式:其思想和范围取模分片一样,由于日期取模会出现数据热点问题,所以先根据日期分组,再根据时间 hash 使得短期数据分布跟均匀. 优点:避免扩容时的数据迁移,可以在一定程度上避免范围分片的热点问 ...

  5. 用C#开发的一个通用的地铁换乘查询工具

    日常生活中,上班下班坐地铁已经是常事,每当我想去某一个远一点的地方,如果有地铁首选就是地铁,因为方便嘛!每次坐地铁,我们都是凭肉眼去得出我们心中最佳的换乘方案,但是,如果对于线路较少的城市来说,这个方 ...

  6. CSS3美化网页元素

    <span>标签 </span>属性名 含义 举例font-family 设置字体类型 font-family:"隶书"font-size 设置字体大小 f ...

  7. 一周Maven框架学习随笔

    第一次写博客,可能写得不是很好,但是希望自己持之以恒,以后会更好.也希望通过写博客记录随笔,让自己本身有所收获. 下面是今天的maven总结: maven个人理解中是Maven项目对象模型(POM), ...

  8. Python+reuqests自动化接口测试

    1.最近自己在摸索Python+reuqests自动化接口测试,要实现某个功能,首先自己得有清晰的逻辑思路!这样效率才会很快! 思路--1.通过python读取Excel中的接口用例,2.通过pyth ...

  9. Python报错TypeError: '<' not supported between instances of 'str' and 'int'

    n = input() if n>=100:print(int(n)/10) else:print(int(n)*10) 报错内容: Traceback (most recent call la ...

  10. C语言嵌套循环

    题目一:7-3 编程打印空心字符菱形 1.提交列表 2.设计思路: 1.定义整型变量循环控制变量i,j,k,x,y,z,e及菱形的高度height: 2.定义字符型变量letter: 3.输入字符型变 ...