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 List<String> list = new ArrayList(); list.add("www.jb51.net"); list.add...
在Java中,集合初始化可以通过匿名内部类的方式实现,将创建和赋值过程一步到位。例如: ```java List<String> list = new ArrayList() {{ add("www."); add("javastack."); add("cn"); }}; Map, String> ...
这种循环通过初始化索引变量(j),检查条件(j),并进行迭代(j++)来遍历数组。 2. 遍历集合的for-each循环: 在J2SE 1.5中引入的增强型for循环,也称为foreach或for-each loop,简化了遍历数组和集合的过程。...
6. **集合框架**:Java集合框架是处理数据集合的重要工具,包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。"MyProjects"可能会演示如何使用这些数据结构。 7. **多线程**:...
3. **数组**:Java中的数组用于存储同类型的多个数据,实例可能包含一维和多维数组的声明、初始化和操作。 4. **字符串处理**:Java.String类提供了丰富的字符串操作方法,例如连接字符串、查找子串、替换字符和...
- **变量**: `final` 变量一旦被初始化后就不能改变其值。对于基本数据类型来说,这意呈着变量的值不可更改;对于引用类型来说,则意味着该引用指向的对象不可更改。 #### finally `finally` 块是异常处理机制的一...
- **变量与常量**:理解变量的声明、初始化和作用域,以及final关键字用于创建常量。 - **运算符**:掌握算术、比较、逻辑、位运算符的使用。 - **流程控制**:学习if语句、switch语句、for、while、do-while循环...
- 变量与常量:学习如何声明、初始化和使用变量,以及常量的定义。 - 运算符:理解算术、比较、逻辑、位、赋值等运算符的用法。 - 流程控制:包括if语句、switch语句、for循环、while循环和do-while循环。 2. **...
- Java集合框架提供了多种用于存储和操作数据的接口和实现类,如`List`、`Set`、`Map`等。 ### Java访问修饰符详解 #### 1. private - `private`修饰符表示该成员只能被同一类中的方法访问。即使是在同一个包内,...
- 集合框架中提供了多种集合类,如`List`、`Set`、`Map`等,它们各有特点,适用于不同的应用场景。 以上是对给定文件中提到的一些Java面试知识点的详细解析。这些知识点不仅涵盖了基本语法和概念,还涉及到了面向...
- **变量与常量**:了解如何声明和初始化变量,以及final关键字用于创建常量。 - **运算符**:包括算术、关系、逻辑、位、赋值等,理解它们的优先级和用法。 - **流程控制**:如if-else、switch、for、while等,...
- 当用来修饰变量时,该变量成为常量,一旦初始化后其值不能被改变。 - **finally**: `finally` 块通常与 `try` 和 `catch` 结合使用,用来确保某些代码无论异常是否发生都会被执行。这在资源释放等场景下非常有用...
7. **web.xml加载顺序:** 在Web应用中,web.xml的加载顺序影响到Web组件的初始化顺序,通常遵循的是监听器、过滤器、Servlet的顺序。 8. **Filter和Servlet的区别:** Filter是过滤器,用于拦截请求、修改请求头和...
- 初始化:通过`init()`方法。 - 请求处理:通过`service()`方法。 - 销毁:通过`destroy()`方法。 2. **Servlet中,forward和redirect区别是什么?** - `forward`是服务器内部转发,客户端浏览器不会看到转发...
- **接口与实现类**:如List、Set、Queue和Map接口及其对应的实现类。 5. **异常处理** - **try-catch-finally**:处理异常的基本结构。 - **Checked异常与Unchecked异常**:Checked异常在编译时需要处理,...
DWR支持JavaScript和Java数据类型的相互转换,如JavaScript的Array与Java的List、Collection或数组,JavaScript的Boolean与Java的Boolean,JavaScript的Object与Java的Map或Java Bean,JavaScript的String与Java的...
2. **后台控制器(DWRServlet)**:在Servlet容器中初始化DWR配置,处理来自前端的调用请求,调用后台业务组件,并将结果返回给前端。 3. **组件执行器**:执行实际的Java方法调用,负责将JavaScript请求转化为Java...
构造函数的作用是初始化对象状态,它们不在继承链中传递。 #### 二十五、Java是否支持多继承 - Java不支持多继承,但可以实现多个接口,这在某种程度上可以模拟多继承的效果。 #### 二十六、同步方法是否需要加锁...
- **构造方法**:用于初始化对象的特殊方法。 - **this关键字**:指向当前对象的引用。 - **包的概念和使用**:用于组织相关的类和接口,避免命名冲突。 - **继承**:子类可以继承父类的属性和方法,使用`extends`...