`
knight_black_bob
  • 浏览: 858730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java怎么用一行代码初始化ArrayList

    博客分类:
  • java
阅读更多

转:http://www.itstrike.cn/Question/e74b36fa-c01f-4254-87ec-e549df2abebe.html

 

 

 

我愿意创建列表的选项,以测试的东西。

我正在做:

 

ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
places.add("La Plata");
 

我重构代码做:

 

ArrayList<String> places = new ArrayList<String>(Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));
 

有这样做的更好的方法吗?

感谢阅读 !

解决方法 1:

其实,可能要初始化的"最佳"方式,ArrayList 是你写的方法,因为它不需要创建一个新的 List 以任何方式:

 

ArrayList<String> list = new ArrayList<String>();
    list.add("A");
    list.add("B");
    list.add("C");
 

渔获是相当多的键入所需,请参阅 list 实例。

有如使一个匿名的内部类的一个实例初始值设定项 (也称为一种"双大括号初始化") 的方法:

 

ArrayList<String> list = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
}}
 

不过,我不太喜欢该方法,因为什么你最终是一个类的子类 ArrayList 有一个实例初始值设定项和这类只是为了创建一个对象 — — 只是看起来像我有点大材小用。

有何好是如果接受 项目硬币 收集文本的建议,我们可以有 Java 7 中的列表中文字:

 

List<String> list = ["A", "B", "C"];
 

不幸的是它不会帮助您在这里,因为它将初始化一个 List,而不是 ArrayList,此外,它尚未提供,如果它以往任何时候都将和。

解决方法 2:

如果你,只是将它声明为列表中没有要 ArrayList,它会更简单呢?

 

List<String> places = Arrays.asList("Buenos Aires", "Córdoba", "La Plata");
 

解决方法 3:

 

import com.google.common.collect.ImmutableList;

....

List<String> places = ImmutableList.of("Buenos Aires", "Córdoba", "La Plata");
 

 

解决方法 4:

漂亮的很多,最简单的方法就是 List<String> strings = new ArrayList<String>(asList("foo", "bar", "baz")),如果您必须有一个 ArrayList,否则您应该在大多数情况下只是使用List<String> strings = asList("foo", "bar", "baz")

你说你已宣布作为列表一个 ArrayList 在您的代码中,但您不应该做的除非您正在使用的一些成员 ArrayList 在这并不是List,例如 ArrayList.ensureCapacity()

通常您应该只是声明变量,您要使用,它的列表通常是最通用接口的 List,和初始化它们在具体的实施,例如 ArrayList或 LinkedList

使用不实现,否则为你会发现您要在多个位置更改,当您想要使用另一种实现的接口。

另一个例子将总是声明变量,一个 InputStream 即使它通常是一个 FileInputStream,这是因为一天很快就您或其他人会想要使用一些另类的 InputStream

解决方法 5:

您可以创建一个工厂方法:

 

public static ArrayList<String> createArrayList(String ... elements) {
  ArrayList<String> list = new ArrayList<String>(); 
  for (String element : elements) {
    list.add(element);
  }
  return list;
}

....

ArrayList<String> places = createArrayList(
  "São Paulo", "Rio de Janeiro", "Brasília");
 

 

但并不比你第一次的重构。

更新: 更大的灵活性,它可以是一种通用:

 

public static <T> ArrayList<T> createArrayList(T ... elements) { 
  ArrayList<T> list = new ArrayList<T>();  
  for (T element : elements) { 
    list.add(element); 
  } 
  return list; 
} 
 

 

解决方法 6:

只是注意到它在一个很简单的工作方法,如下所示:

 

 ArrayList arrList = new ArrayList() {"1",2,3,"4" };

List<Customer> listCustomer = new List<Customer>() { new Customer(), new Customer(), new Customer() };
 

 

这 C# 3.0 不双支撑所需的工作。希望这有助于。

解决方法 7:

 

若要设置列表填充 N 的默认对象的副本:

 

ArrayList<Object> list = new ArrayList<Object>(
    Collections.nCopies(1000, new Object())); 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者 

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。

 

个人主页http://knight-black-bob.iteye.com/



 
 
 谢谢您的赞助,我会做的更好!

分享到:
评论

相关推荐

    《第一行代码JAVA》PPT与源代码.zip

    《第一行代码JAVA》是一本非常适合初学者的Java编程入门书籍,它以其通俗易懂的语言和丰富的实例,引领读者逐步走进Java的世界。本压缩包包含了该书配套的PPT讲解和源代码,对于自主学习或者巩固书中知识具有很大的...

    java第一件代码

    在Java中,你可以声明并初始化数组,例如: ```java int[] numbers = {1, 2, 3, 4, 5}; ``` 9. **类与对象**: Java是面向对象的,类是对象的蓝图,包含数据(成员变量)和行为(方法)。对象是类的实例。定义...

    Java开发技术大全(500个源代码).

    errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper...

    java ssh 安全访问代码

    本段 Java 代码提供了一种实现 SSH 安全访问的方法,它利用了 JSch 库来进行 SSH 会话管理,并使用 Expect4j 库来处理 SSH 交互中的复杂逻辑。此外,还使用了 Apache Log4j 来记录日志信息,帮助调试和监控 SSH 连接...

    Java 课程实例与实训代码

    实训代码会通过实际的程序示例,让你掌握如何在Java中声明、初始化和使用变量,理解各种数据类型,以及如何运用条件判断和循环结构来控制程序执行流程。 2. **面向对象编程**: Java 是一种面向对象的语言,它支持类...

    Java 代码实现案例

    每个内部的List代表一行记录,列表中的对象对应于列的值。我们还需要定义列的元数据,如列名和数据类型,这可以作为`Column`类的一部分。 ```java public class Table { private List&lt;List&lt;Object&gt;&gt; rows; ...

    Java期末考试试题(一)

    这段代码在编译时是正确的,但在运行时会抛出ArrayIndexOutOfBoundsException,因为试图访问数组的第二个元素(下标1),但数组未初始化。答案是B。 9. 对象加互斥锁的关键字: 在Java中,使用`synchronized`关键字...

    用Java实现的数独游戏的源代码

    数独是一种逻辑推理的填数字游戏,通常在9x9的网格中进行,玩家需要根据已给出的数字填充空白格子,使得每一行、每一列以及每一个3x3的小宫格内的数字1到9都只出现一次。这个项目提供的源代码可以帮助开发者理解如何...

    JAVA代码规范详细版.zip

    - 使用构造函数初始化对象,保持类的私有化。 - 尽量减少全局变量的使用,提高代码的封装性。 - 为方法添加默认访问修饰符(无修饰符),除非需要特定的访问级别。 4. **异常处理** - 不要忽视异常,确保每个...

    JAVA程序源代码学习借鉴

    理解每一行代码的功能,分析其逻辑,尝试修改并运行代码以观察结果。同时,结合在线教程、书籍和论坛讨论,可以加深理解并解决遇到的问题。 此外,不要忘记在实践中应用所学知识,尝试创建自己的小项目,比如一个...

    Java开发手册-代码规范

    - 长表达式应在接近80字符的位置换行,并且使后续行与上一行的操作符对齐。 - 例如: ```java String result = "This is a very long string that needs to be broken " + "into two lines for readability."; ...

    杨辉三角(java代码).docx

    根据给定文件的信息,本文将围绕“杨辉三角”这一主题展开,重点介绍其概念、特点以及如何通过Java代码实现生成杨辉三角的功能。 ### 杨辉三角简介 杨辉三角,又称帕斯卡三角形(Pascal's Triangle),是一种在...

    java矩阵关系运算源代码

    为了实现这些功能,开发者可能使用了Java的ArrayList、HashMap等数据结构,以及Scanner类进行输入,PrintWriter或System.out.println()进行输出。同时,代码中可能还包含了错误处理和测试用例,确保算法的正确性。 ...

    一行代码实现ViewPager卡片效果

    至此,我们就用一行代码(`viewPager.setAdapter(new CardPagerAdapter(...));`)实现了使用ViewPager展示CardView卡片效果。当然,这只是一个基础示例,实际项目中可能需要考虑更多的细节,如数据加载、点击事件...

    java 俄罗斯方块代码

    - 方块的生成:随机选择一个方块形状并初始化其位置。 - 方块的移动:根据用户输入,定时器或者游戏规则向下平移。 - 方块的旋转:计算旋转后的坐标,确保旋转后不会超出边界。 - 检测碰撞:检查方块与已有方块...

    深入Java集合ArrayList的源码解析

    2. 无参构造函数初始化:默认不分配任何空间,而是使用一个空的数组引用,避免不必要的内存开销。 3. 指定数据初始化:接受一个Collection对象,将其转换为ArrayList,如果输入的Collection非Object[]类型,会进行...

    提升java代码简洁度的几个小技巧

    12. 利用构造函数初始化:在类的构造函数中初始化成员变量,而不是在类体中直接赋值,使代码更清晰。 13. 使用try-with-resources处理资源关闭:Java 7引入的try-with-resources语句自动关闭资源,如文件流,简化了...

    java 日历代码

    本段Java代码主要实现了一个简易的日历程序。通过用户选择年份与月份,程序能够显示指定月份的日历,并且能够计算出某一天是该周的第几天。接下来,将详细解析代码中的关键知识点。 #### 二、核心知识点详解 #####...

    java源代码

    学习这些源代码时,不仅要看懂每一行代码的功能,更要理解代码背后的逻辑和设计思路。通过阅读和分析这些代码,你可以加深对Java语法的理解,提升问题解决能力,同时也能逐步掌握良好的编程习惯和设计模式。 此外,...

Global site tag (gtag.js) - Google Analytics