`

Java中List与Map初始化的一些写法

阅读更多

Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map:

//初始化List
List list = new ArrayList();
list.add("string1");
list.add("string2");
//some other list.add() code......
list.add("stringN");
//初始化Map
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
//.... some other map.put() code
map.put("keyN", "valueN");

 这种方法有点麻烦,下面介绍一下另外一种方法:

//初始化List
List list = new ArrayList(){{
  add("string1");
  add("string2");
  //some other add() code......
  add("stringN");
}};
//初始化Map
Map map = new HashMap(){{
  put("key1", "value1");
  put("key2", "value2");
  //.... some other put() code
  put("keyN", "valueN");
}};

虽然看起来没少写多少代码,但是个人觉得这种方式还是简洁多了很多。

利用ArrayList的add方法完成初始化赋值,实例如下:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class Test
{
    public static void main(String[]args)
    {
    	//初始化List
    	List list = new ArrayList(){{
    	  add("string1");
    	  add("string2");
    	  //some other add() code......
    	  add("stringN");
    	}};
    	for(int i=0;i<list.size();i++) {
    		System.out.println(list.get(i));
    	}
    	
    	//初始化Map
    	Map map = new HashMap(){{
    	  put("key1", "value1");
    	  put("key2", "value2");
    	  //.... some other put() code
    	  put("keyN", "valueN");
    	}};
    	Iterator iter = map.entrySet().iterator();
    	while (iter.hasNext()) {
    		Map.Entry entry = (Map.Entry) iter.next();
    		Object key = entry.getKey();
    		Object val = entry.getValue();
    		System.out.println(key + ":" + val);
    	}
    }
}

运行结果:

string1
string2
stringN
key2:value2
key1:value1
keyN:valueN

附: 利用Array与ArrayList的相互转换方法,代码如下:
ArrayList list = new ArrayList(Arrays.asList("Ryan", "Julie", "Bob"));

资料来源:http://flycars001.iteye.com/blog/2025336

分享到:
评论

相关推荐

    Java中List与Map初始化的一些写法分享

    本文将详细介绍Java中初始化List和Map的几种常见方法,并对比它们的优缺点。 首先,我们来看传统的初始化方式: ```java // 初始化List List&lt;String&gt; list = new ArrayList(); list.add("www.jb51.net"); list.add...

    Java 10 大装 B 写法,看完可以出去吹牛逼了!

    在Java中,集合初始化可以通过匿名内部类的方式实现,将创建和赋值过程一步到位。例如: ```java List&lt;String&gt; list = new ArrayList() {{ add("www."); add("javastack."); add("cn"); }}; Map, String&gt; ...

    Java for循环几种写法整理

    这种循环通过初始化索引变量(j),检查条件(j),并进行迭代(j++)来遍历数组。 2. 遍历集合的for-each循环: 在J2SE 1.5中引入的增强型for循环,也称为foreach或for-each loop,简化了遍历数组和集合的过程。...

    Java程序设计编程实例

    6. **集合框架**:Java集合框架是处理数据集合的重要工具,包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。"MyProjects"可能会演示如何使用这些数据结构。 7. **多线程**:...

    JAVA100例2

    3. **数组**:Java中的数组用于存储同类型的多个数据,实例可能包含一维和多维数组的声明、初始化和操作。 4. **字符串处理**:Java.String类提供了丰富的字符串操作方法,例如连接字符串、查找子串、替换字符和...

    Java面试题大全(自己整理的最全的Java面试题,背过了很有用)

    - **变量**: `final` 变量一旦被初始化后就不能改变其值。对于基本数据类型来说,这意呈着变量的值不可更改;对于引用类型来说,则意味着该引用指向的对象不可更改。 #### finally `finally` 块是异常处理机制的一...

    Java考证历年试题及参考答案

    - **变量与常量**:理解变量的声明、初始化和作用域,以及final关键字用于创建常量。 - **运算符**:掌握算术、比较、逻辑、位运算符的使用。 - **流程控制**:学习if语句、switch语句、for、while、do-while循环...

    中软国际Java面试题

    - 变量与常量:学习如何声明、初始化和使用变量,以及常量的定义。 - 运算符:理解算术、比较、逻辑、位、赋值等运算符的用法。 - 流程控制:包括if语句、switch语句、for循环、while循环和do-while循环。 2. **...

    Java面向对象程序设计模拟试题

    - Java集合框架提供了多种用于存储和操作数据的接口和实现类,如`List`、`Set`、`Map`等。 ### Java访问修饰符详解 #### 1. private - `private`修饰符表示该成员只能被同一类中的方法访问。即使是在同一个包内,...

    java----java面试

    - 集合框架中提供了多种集合类,如`List`、`Set`、`Map`等,它们各有特点,适用于不同的应用场景。 以上是对给定文件中提到的一些Java面试知识点的详细解析。这些知识点不仅涵盖了基本语法和概念,还涉及到了面向...

    java 面试题,包含内容比较全

    - **变量与常量**:了解如何声明和初始化变量,以及final关键字用于创建常量。 - **运算符**:包括算术、关系、逻辑、位、赋值等,理解它们的优先级和用法。 - **流程控制**:如if-else、switch、for、while等,...

    Java面试题及答案

    - 当用来修饰变量时,该变量成为常量,一旦初始化后其值不能被改变。 - **finally**: `finally` 块通常与 `try` 和 `catch` 结合使用,用来确保某些代码无论异常是否发生都会被执行。这在资源释放等场景下非常有用...

    JAVA 面试题

    7. **web.xml加载顺序:** 在Web应用中,web.xml的加载顺序影响到Web组件的初始化顺序,通常遵循的是监听器、过滤器、Servlet的顺序。 8. **Filter和Servlet的区别:** Filter是过滤器,用于拦截请求、修改请求头和...

    IT java 面试题库

    - 初始化:通过`init()`方法。 - 请求处理:通过`service()`方法。 - 销毁:通过`destroy()`方法。 2. **Servlet中,forward和redirect区别是什么?** - `forward`是服务器内部转发,客户端浏览器不会看到转发...

    IBM华为Java面试题

    - **接口与实现类**:如List、Set、Queue和Map接口及其对应的实现类。 5. **异常处理** - **try-catch-finally**:处理异常的基本结构。 - **Checked异常与Unchecked异常**:Checked异常在编译时需要处理,...

    dwr 开发培训 举例说明dwr在实际工作中的应用

    DWR支持JavaScript和Java数据类型的相互转换,如JavaScript的Array与Java的List、Collection或数组,JavaScript的Boolean与Java的Boolean,JavaScript的Object与Java的Map或Java Bean,JavaScript的String与Java的...

    DWR教程ppt

    2. **后台控制器(DWRServlet)**:在Servlet容器中初始化DWR配置,处理来自前端的调用请求,调用后台业务组件,并将结果返回给前端。 3. **组件执行器**:执行实际的Java方法调用,负责将JavaScript请求转化为Java...

    值得一看的java面试题

    构造函数的作用是初始化对象状态,它们不在继承链中传递。 #### 二十五、Java是否支持多继承 - Java不支持多继承,但可以实现多个接口,这在某种程度上可以模拟多继承的效果。 #### 二十六、同步方法是否需要加锁...

    java考试大纲

    - **构造方法**:用于初始化对象的特殊方法。 - **this关键字**:指向当前对象的引用。 - **包的概念和使用**:用于组织相关的类和接口,避免命名冲突。 - **继承**:子类可以继承父类的属性和方法,使用`extends`...

Global site tag (gtag.js) - Google Analytics