java基础-Map的静态初始化以及Map的遍历等.....................
1.map的静态初始化,以及map遍历的几种方法:
package com.cy.test; import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry; public class Test {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>(){
{
put("zh", 1);
put("en", 2);
put("zh_CN", 1);
put("en_US", 2);
}
}; /**
* 方法一 使用Iterator遍历
* 该种方式看起来冗余却有其优点所在。
* 首先,在老版本java中这是惟一遍历map的方式。
* 另一个好处是,你可以在遍历时调用iterator.remove()来删除entries,另两个方法则不能,根据javadoc的说明,如果
* 在for-each遍历中尝试使用此方法,结果是不可预测的。
* 从性能方面看,该方法类同于for-each遍历(即方法二)的性能。
*/
Iterator<Entry<String, Integer>> it = map.entrySet().iterator();
while(it.hasNext()){
Entry<String, Integer> entry = it.next();
System.out.println("key:" + entry.getKey() + "----" + entry.getValue());
} /**
* 方法二 在for-each循环中使用entries来遍历
* 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。
* 如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException
*/
for(Map.Entry<String, Integer> entry : map.entrySet()){
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
} /**
* 方法三 在for-each循环中遍历keys或values。
* 该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。
*/
for(String key : map.keySet()){
System.out.println("Key = " + key);
}
for(Integer value : map.values()){
System.out.println("Value = " + value);
} /**
* 方法四 通过键找值遍历(效率低)
* 实际上它相当慢且无效率。因为从键取值是耗时的操作
* 尽量避免使用。
*/
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key = " + key + ", Value = " + value);
}
}
}
使用Map.isEmpty()判断map是不是一个空的集合。
2.List的静态初始化:
public static void main(String[] args) {
//方式1
List<String> list = new ArrayList<String>(){
{
add("string1");
add("string2");
add("string3");
}
};
//方式2
List<String> list2 = new ArrayList<String>(Arrays.asList("Ryan", "Julie", "Bob"));
}
3.
java基础-Map的静态初始化以及Map的遍历等.....................的更多相关文章
- JAVA基础第五章-集合框架Map篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- java基础第十四篇之Map
一,Map集合的特点: * * 1.Map集合和Collection集合,没有关系 * * 2.Map集合的元素是成对存在(夫妻关系) * Collection集合的元素是独立存在 ...
- [Think In Java]基础拾遗1 - 对象初始化、垃圾回收器、继承、组合、代理、接口、抽象类
目录 第一章 对象导论第二章 一切都是对象第三章 操作符第四章 控制执行流程第五章 初始化与清理第六章 访问权限控制第七章 复用类第九章 接口 第一章 对象导论 1. 对象的数据位于何处? 有两种方式 ...
- JAVA基础之对象的初始化
本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...
- JAVA基础知识之JVM-——类初始化
我们通常说的类初始化,其实要分为三个阶段,类加载,连接,和初始化.他们大致完成以下功能.类加载将class文件载入内存,类连接进行内存分配,初始化进行变量赋值. 类的加载,连接和初始化 java.la ...
- Java基础知识Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是相对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- java基础之——类的初始化顺序
由浅入深,首先,我们来看一下,一个类初始化有关的都有些啥米: 静态成员变量.静态代码块.普通成员变量.普通代码块.构造器.(成员方法?貌似跟初始化没有啥关系) 现在我们来看看她们的初始化顺序, 从性质 ...
- Java 基础之 static 静态
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static修饰的成员变量和成员方法独立于该类的任何 ...
- JAVA基础|从Class.forName初始化数据库到SPI破坏双亲委托机制
代码托管在:https://github.com/fabe2ry/classloaderDemo 初始化数据库 如果你写过操作数据库的程序的话,可能会注意,有的代码会在程序的开头,有Class.for ...
随机推荐
- IAsyncResult接口
#region 程序集 mscorlib.dll, v4.0.0.0 // C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewor ...
- TimerPickerDialog 中 onTimeSet 执行两次的问题
开发android小闹钟的程序时,在添加闹钟时闹钟列表中总是出现两个相同的闹钟. btnAddAlarm.setOnClickListener(new View.OnClickListener() { ...
- Qt5_TCP_Client01
ZC: 代码来自<<Qt及Qt Quick开发实战精解>>“代码\src\5\5-3”(“代码\src\5\5-4”里面的代码差不多,不知有何差别...貌似应该是更为完善) Z ...
- 《F4+2 团队项目需求分析改进》
a.分析<动态的太阳系模型项目需求规格说明书>初稿的不足. 任务概述描述的有些不具体,功能的规定不详细,在此次作业进行了修改. b.参考<构建之法>8.5节功能的定位和优先级, ...
- Android中Tablayout设置下划线宽度 和 dp和px之间进行相互转换
开发中遇到了一个问题,Tablayout设置下换线长度,看了点资料,分享给大家. 效果图: 直接贴代码(要在tabLayout添加完所有的tab后调用) public vo ...
- Python 实现图片上表格的写入
直接上代码:import matplotlib.pylab as pltimport numpy as npplt.figure()axes=plt.gca()y= np.random.randn(9 ...
- 个人知识管理系统Version1.0开发记录(12)
最近碰到个问题,在五个工作日内阅读一个百万行左右代码量的新项目集合,如何解决呢? 第一个工作日,环境观察.待在那个项目组,看项目成员们在做些什么事情,开发,测试,聊天,或多或少可以收集到一些项目相关的 ...
- Git观察和比较
log git log 时间是从下到上,从远到近 whatchanged git whatchanged 时间是从下到上,从远到近 diff --staged 比较工作区和缓存区之间的差异 g ...
- hdu 3699 10 福州 现场 J - A hard Aoshu Problem 暴力 难度:0
Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...
- bzoj1037
题解: 定义f[i][j][a][b]表示已经排了i个人 还能拍j个男的(那么就还有m-i+j个是女的) 还能连续拍a个男的,b个女的 我是递推的 考虑后面一个拍男的还是女的 注意要判断边界 代码: ...