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比,请编程序 ...
随机推荐
- Unity性能优化的N种武器
贴图: l 控制贴图大小,尽量不要超过 1024 x1024: l 尽量使用2的n次幂大小的贴图,否则GfxDriver里会有2份贴图: l 尽量使用压缩格式减小贴图大小: l 若干种贴图合并 ...
- MSIL实用指南-创建方法和定义参数
本篇讲解实现创建方法.指定参数的名称.实现参数加out和ref修饰符.以及参数加默认值. 创建方法 创建方法用类TypeAttributes的 DefineMethod(string name, Me ...
- NGUI_Toggle
七.Toggle复选框:就是对一个选项做上一个标记,表示这个选项已经被选中了. 1.当我们要判断是否使用复选框,可以遵循一下规律: (1).该功能只有两种状态 是/否 (2).该功能同一时间只能激活 ...
- 插入排序(Java实现)
直接插入排序 public class InsertionSort { public static <T extends Comparable<? super T>> void ...
- Redis学习笔记01--主从数据库配置
1.创建公共配置文件 所有配置文件添加到以下目录: /xxxx/redis-slave-master 创建公共的redis配置文件,直接使用redis的默认配置文件,修改以下配置项: bind 127 ...
- 蚂蚁金服安全实验室首次同时亮相BlackHat Asia 以及CanSecWest国际安全舞台
近期,蚂蚁金服巴斯光年安全实验室(以下简称AFLSLab)同时中稿BlackHat Asia黑帽大会的文章以及武器库,同时在北美的CanSecWest安全攻防峰会上首次中稿Android安全领域的漏洞 ...
- 一次精疲力尽的改bug经历
一.介绍 最近一直在做有关JavaScriptCore的技术需求,上周发现一个问题,当在JavaScriptCore在垃圾回收时,项目会有一定几率发生崩溃.崩溃发生时调用堆栈如下: 图1 调用堆栈 先 ...
- 在Anacoda中管理多个版本Python
win10. 在cmd窗口中输入 conda info --envs 或者 conda env list 查看已经安装的环境,当前活动的环境前会加*号. 在cmd窗口(终端窗口)或anaconda p ...
- linux No space left on device 由索引节点(inode)爆满引发500问题
inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取 ...
- C语言博客作业—数组
一.PTA实验作业 题目1:简化的插入排序 1. 本题PTA提交列表 2. 设计思路 (1)定义n,number,i,j,temp; (2)输入n; (3)定义数组a[n+1]; //把所有的数都放入 ...