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 ...
随机推荐
- Vim提示E325(锁机制)
背景 用vim命令处理一些超大文件时,有时会遇到卡死现象,不得不强制退出.但是,再次用vim命令访问这个文件时,会出现“E325:ATTENTION”提示.如果不做处理,以后每次都会出现. 分析 经过 ...
- 修改JS文件都需要重启Idea才能生效解决方法
最近开始使用Idea,有些地方的确比eclipse方便.但是我发现工程每次修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat这样的确不方便.我想Idea肯定有设置的方法,不可能 ...
- Pro Git读书笔记 - Git 常用命令
在工作目录中初始化新仓库 要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行git init 检查当前文件状态 要查看哪些文件处于什么状态,可以用git status命令 将工作文件 ...
- session与cookie详解
session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优 ...
- callee 与 caller
arguments.callee 在函数内部指向函数本身 1.函数调用 function sum (num){ if(num <= 1){ return 1; }else{ return num ...
- 【源码学习之spark streaming 1.6.1 】
说明:个人原创,转载请说明出处 http://www.cnblogs.com/piaolingzxh/p/5634577.html 未完待续
- 谈谈刚接触sea.js框架得看法
向大神致敬,也是我接触框架得开始. 感谢张鑫旭大神,专业!致敬~ sea.js的7个API,都在下面得链接中有详细说明: http://www.zhangxinxu.com/sp/seajs/do ...
- HTML5 Canvas 代码检测浏览器是否支持
在创建HTML5 Canvas元素之前,首先要检测浏览器是否能够拿支持他,如果不支持,就要用文字或图片替代,检测代码如下所示. <!DOCTYPE html> <html> & ...
- mysql迁移oracle
有很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到Orac ...
- bzoj1449&&bzoj2895
题解: S连每场比赛流量1费用0 每场比赛连参赛队流量1费用0 我们发现调整一次 由win,lose变为 win+1,lose-1的费用为 (C*(win+1)^2+D*(lose-1)^2) - ( ...