Java等效的C#匿名数组和列表?

栏目: Java · 发布时间: 6年前

内容简介:翻译自: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" };

参考: Java tutorial > Arrays

清单

创建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"});

参考: Java Tutorial > Arbitrary Number of Arguments

翻译自:https://stackoverflow.com/questions/4750328/java-equivalent-of-c-sharp-anonymous-arrays-and-lists


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

场景革命

场景革命

吴声 / 机械工业出版社 / 2015-7-1 / 59.00元

How-old如何引爆了朋友圈的全民脑洞狂欢? Uber是打车软件,还是入口? 为什么“自拍”会成为一个产业? 美团如何成为电影票房冠军的幕后推手? 商业进入了新物种时代,超级平台之后,PC时代以降,IoT(万物互联)崛起之时,到底什么是新的入口?一系列的颠覆使我们开始正视移动互联时代的品类创造方法,一场孕育已久的场景革命正在发生。 《场景革命:重构人与商业的连接》为......一起来看看 《场景革命》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具