java集合小知识的复习
*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集合进行遍历
- 使用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());}
- 使用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集合小知识的复习的更多相关文章
- Java基础小知识(一)
序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...
- Java入门小知识
软件开发什么是软件? 一系列按照特定顺序组织的计算机数据和指令的集合什么是开发? 制作软件 人机交互 软件的出现实现了人与计算机之间的更好的交互交互方式 图形化界面:这种方式简单直观,使用者 ...
- java基础小知识
1.1常量: 基本数据类型常量 字符常量 整数常量的表现形式:一进制的形式来表示(二进制,八进制,十进制,十六进制) 生活中:十进制(0-9) ,星期(七进制(0-6)) ,时间(十二进制(0-11 ...
- Java~时间戳小知识
大叔对java时间戳使用的总结 Java里的Date对象有方法setTime,主要是将一个时间戳转成一个日期对象,而这个时间戳的标准是unix标准,即当前时间与1970/1/1相差的毫秒数,记得是毫秒 ...
- Java基础小知识笔记
1. Integer转进制的一个类2. toBinaryString,toOctalString,toHexString.(转为二进制,八进制,十六进制的方法)3. 如果·数据的大小没有超过byte/ ...
- Java 集合基础知识 List/Set/Map
一.List Set 区别 List 有序,可重复: Set 无序,不重复: 二.List Set 实现类间区别及原理 Arraylist 底层实现使用Object[],数组查询效率高 扩容机制 ...
- Java基础小知识1——分别使用字节流和字符流复制文件
在日常使用计算机过程中经常会涉及文件的复制,今天我们就从Java代码的角度,看看在Java程序中文件复制的过程是如何实现的. 1.使用字节流缓冲区复制文件 示例代码如下: import java.io ...
- Java集合框架知识总结
两大体系:Collection,Map 一.Collection: List 接口 : List:里面对象全部是有序的(通过三种方法来遍历) ArrayList,LinkedList,Vertor A ...
- java算法小知识练习(二)
话不多说,直接上题: 题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单. 有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序 ...
随机推荐
- object转字符串
1.obj.tostring() obj为空时,抛异常. 2.convert.tostring(obj) obj为空时,返回null: 3.(string)obj obj为空时,返回null:obj不 ...
- netcore 使用surging框架发布到docker
demo运行在windows的docker中,系统是win10,所以需要先下载Docker for Windows,安装完毕后系统会重启,然后桌面上可以找到Docker for Windows的快捷图 ...
- 《Linux命令行与shell脚本编程大全》- 读书笔记3 - 理解shell
当用户登录终端的时候,通常会启动一个默认的交互式shell.系统究竟启动哪个shell,这取决于用户配置.一般这个shell都是/bin/shell.默认的系统shell(/bin/sh)用于系统sh ...
- JQ在光标处插入文字
内容转载自网络这是一个JQ的扩展方法.在teatarea获得焦点时,往光标处插入文字,扩展代码如下 (function($){ $.fn.extend({ "insert":fun ...
- memcache 总结笔记
(一):基础概念 memcache是什么? Memcache 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态 ...
- 【pyHook】 监测键盘鼠标事件等
[pyHook] pyHook是一个用来进行键盘.鼠标等层面事件监控的库.这个库的正常工作需要pythoncom等操作系统的API的支持.首先来说说如何安装. 直接pip install pyHook ...
- 最近用spring4.x整合Jackson------>java.lang.ClassNotFoundException:
最近用spring4.x整合Jackson,结果莫名其妙的一直报错,网上收索的结果都是在maven或者gradle的环境下配置依赖条件解决的:但是eclipseIDE环境下的jar包应该是会自动依赖影 ...
- 使用selenium时提示:ImportError:No module named selenium
问题分析: 用的是mac系统,已经通过sudo pip install -U selenium安装好了selenium, 但是无论用命令行还是用sublime导入selenium都会提示错误. 于是查 ...
- 对lua表中数据按一定格式处理,循环
function putStartCard(handCard) function dataDeal(array,a,b,c) cclog("进入datadeal=============== ...
- 开始补习JavaScript的第一天
JavaScript介绍: ①.JavaScript是一种解释性的,基于对象的脚本语言. ②.JavaScript是一种轻量级的编程语言,可以嵌入到html页面中,由浏览器来解释执行. ③.JavaS ...