内容简介:翻译自:https://stackoverflow.com/questions/4750328/java-equivalent-of-c-sharp-anonymous-arrays-and-lists
当我需要将它们传递给函数时,C#允许我动态地创建数组.假设我有一个名为findMiddleItem(String [] items)的方法.在C#中,我可以编写如下代码:
findMiddleItem(new String[] { "one", "two", "three" });
这很棒,因为这意味着我不必写:
IList<String> strings = new List<String>(); strings.add("one"); strings.add("two"); strings.add("three"); findMiddleItem(strings.ToArray());
这很糟糕,因为我并不真正关心字符串 – 它只是一个让我将字符串数组传递给需要它的方法的构造.一种我无法修改的方法.
那么你如何用 Java 做到这一点?我需要知道数组类型(例如String [])以及泛型类型(例如List).
列表和数组是根本不同的东西.
A
List
是
Collection
类型,是接口的实现.
Array是一种特殊的操作系统特定数据结构,只能通过特殊语法或本机代码创建.
数组
在Java中,数组语法与您描述的语法相同:
String[] array = new String[] { "one", "two", "three" };
清单
创建List的最简单方法是:
List<String> list = Arrays.asList("one", "two", "three");
但是,结果列表将是不可变的(或者至少它不支持add()或remove()),因此您可以使用ArrayList构造函数调用来包装调用:
new ArrayList<String>(Arrays.asList("one", "two", "three"));
正如Jon Skeet所说,它更适合番石榴,你可以做到:
Lists.newArrayList("one", "two", "three");
参考:
Java Tutorial > The List Interface
,
Lists
(guava javadocs)
VARARGS
关于这个评论:
It would be nice if we would be able to do findMiddleItem({ “one”, “two”, “three” });
Java varargs为您提供了更好的交易:
public void findMiddleItem(String ... args){ // }
你可以使用可变数量的参数调用它:
findMiddleItem("one"); findMiddleItem("one", "two"); findMiddleItem("one", "two", "three");
或者使用数组:
findMiddleItem(new String[]{"one", "two", "three"});
翻译自:https://stackoverflow.com/questions/4750328/java-equivalent-of-c-sharp-anonymous-arrays-and-lists
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- iphone – 与核心数据等效的GROUP BY
- 三个比它们等效 ES5 速度慢的 ES 6 函数
- C语言指针数组和数组指针
- 数组 – 如何在Swift中将数组拆分成两半?
- 菜鸡的算法修炼:数组(旋转数组的最小数字)
- 交换数组元素,使得数组的和的差最小
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Java Language Specification, Java SE 7 Edition
James Gosling、Bill Joy、Guy L. Steele Jr.、Gilad Bracha、Alex Buckley / Addison-Wesley Professional / 2013-2-24 / USD 59.99
Written by the inventors of the technology, The Java(r) Language Specification, Java SE 7 Edition, is the definitive technical reference for the Java programming language. The book provides complete, ......一起来看看 《The Java Language Specification, Java SE 7 Edition》 这本书的介绍吧!
RGB CMYK 转换工具
RGB CMYK 互转工具
HEX CMYK 转换工具
HEX CMYK 互转工具