转: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》是一本非常适合初学者的Java编程入门书籍,它以其通俗易懂的语言和丰富的实例,引领读者逐步走进Java的世界。本压缩包包含了该书配套的PPT讲解和源代码,对于自主学习或者巩固书中知识具有很大的...
在Java中,你可以声明并初始化数组,例如: ```java int[] numbers = {1, 2, 3, 4, 5}; ``` 9. **类与对象**: Java是面向对象的,类是对象的蓝图,包含数据(成员变量)和行为(方法)。对象是类的实例。定义...
errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 leapYearByLogical.java 用逻辑表达式判断闰年 lowToUpper...
本段 Java 代码提供了一种实现 SSH 安全访问的方法,它利用了 JSch 库来进行 SSH 会话管理,并使用 Expect4j 库来处理 SSH 交互中的复杂逻辑。此外,还使用了 Apache Log4j 来记录日志信息,帮助调试和监控 SSH 连接...
实训代码会通过实际的程序示例,让你掌握如何在Java中声明、初始化和使用变量,理解各种数据类型,以及如何运用条件判断和循环结构来控制程序执行流程。 2. **面向对象编程**: Java 是一种面向对象的语言,它支持类...
每个内部的List代表一行记录,列表中的对象对应于列的值。我们还需要定义列的元数据,如列名和数据类型,这可以作为`Column`类的一部分。 ```java public class Table { private List<List<Object>> rows; ...
这段代码在编译时是正确的,但在运行时会抛出ArrayIndexOutOfBoundsException,因为试图访问数组的第二个元素(下标1),但数组未初始化。答案是B。 9. 对象加互斥锁的关键字: 在Java中,使用`synchronized`关键字...
数独是一种逻辑推理的填数字游戏,通常在9x9的网格中进行,玩家需要根据已给出的数字填充空白格子,使得每一行、每一列以及每一个3x3的小宫格内的数字1到9都只出现一次。这个项目提供的源代码可以帮助开发者理解如何...
- 使用构造函数初始化对象,保持类的私有化。 - 尽量减少全局变量的使用,提高代码的封装性。 - 为方法添加默认访问修饰符(无修饰符),除非需要特定的访问级别。 4. **异常处理** - 不要忽视异常,确保每个...
理解每一行代码的功能,分析其逻辑,尝试修改并运行代码以观察结果。同时,结合在线教程、书籍和论坛讨论,可以加深理解并解决遇到的问题。 此外,不要忘记在实践中应用所学知识,尝试创建自己的小项目,比如一个...
- 长表达式应在接近80字符的位置换行,并且使后续行与上一行的操作符对齐。 - 例如: ```java String result = "This is a very long string that needs to be broken " + "into two lines for readability."; ...
根据给定文件的信息,本文将围绕“杨辉三角”这一主题展开,重点介绍其概念、特点以及如何通过Java代码实现生成杨辉三角的功能。 ### 杨辉三角简介 杨辉三角,又称帕斯卡三角形(Pascal's Triangle),是一种在...
为了实现这些功能,开发者可能使用了Java的ArrayList、HashMap等数据结构,以及Scanner类进行输入,PrintWriter或System.out.println()进行输出。同时,代码中可能还包含了错误处理和测试用例,确保算法的正确性。 ...
至此,我们就用一行代码(`viewPager.setAdapter(new CardPagerAdapter(...));`)实现了使用ViewPager展示CardView卡片效果。当然,这只是一个基础示例,实际项目中可能需要考虑更多的细节,如数据加载、点击事件...
- 方块的生成:随机选择一个方块形状并初始化其位置。 - 方块的移动:根据用户输入,定时器或者游戏规则向下平移。 - 方块的旋转:计算旋转后的坐标,确保旋转后不会超出边界。 - 检测碰撞:检查方块与已有方块...
2. 无参构造函数初始化:默认不分配任何空间,而是使用一个空的数组引用,避免不必要的内存开销。 3. 指定数据初始化:接受一个Collection对象,将其转换为ArrayList,如果输入的Collection非Object[]类型,会进行...
12. 利用构造函数初始化:在类的构造函数中初始化成员变量,而不是在类体中直接赋值,使代码更清晰。 13. 使用try-with-resources处理资源关闭:Java 7引入的try-with-resources语句自动关闭资源,如文件流,简化了...
本段Java代码主要实现了一个简易的日历程序。通过用户选择年份与月份,程序能够显示指定月份的日历,并且能够计算出某一天是该周的第几天。接下来,将详细解析代码中的关键知识点。 #### 二、核心知识点详解 #####...
学习这些源代码时,不仅要看懂每一行代码的功能,更要理解代码背后的逻辑和设计思路。通过阅读和分析这些代码,你可以加深对Java语法的理解,提升问题解决能力,同时也能逐步掌握良好的编程习惯和设计模式。 此外,...