当前位置: 首页 > 面试题库 >

Java等效于Kotlin的arrayof()/ listof()/ setof()/ mapof()

慎风畔
2023-03-14
问题内容

我只是想知道java是否像kotlin一样具有arrayof()/ listof()/ setof()/
mapof()?如果没有,是否有任何类似的工作方式?我发现它们与Java非常不同。

顺便说一句,做intArrayOf()/ arraylistof()/ hashsetof()/ hashmapof()等。做与int [] {} /
new new ArrayList <>()/ new HashSet <>()/ new HashMap <>相同的操作()等?


问题答案:

Java的9带来了类似的方法:List#ofSet#ofMap#of与几个重载方法,以避免调用可变参数之一。在情况下Map,对于可变参数,你必须使用Map#ofEntries

在Java 9之前的版本中,您必须Arrays#asList用作初始化List和的入口点Set

List<String> list = Arrays.asList("hello", "world");
Set<String> set = new HashSet<>(Arrays.asList("hello", "world"));

如果您希望自己Set是不可变的,则必须将其包装在的不可变集合中Collections#unmodifiableSet

Set<String> set = Collections.unmodifiableSet(
    new HashSet<>(Arrays.asList("hello", "world")));

对于Map,您可以使用技巧创建匿名类,以扩展Map实现,然后将其包装在中Collections#unmodifiableMap。例:

Map<String, String> map = Collections.unmodifiableMap(
    //since it's an anonymous class, it cannot infer the
    //types from the content
    new HashMap<String, String>() {{
        put.("hello", "world");
    }})
    );


 类似资料:
  • 问题内容: Kotlin中没有关键字。 用Kotlin 表示Java方法的最佳方法是什么? 问题答案: 您将功能放置在“伴侣对象”中。 所以像这样的java代码: 会变成 然后,您可以从Kotlin代码内部使用它,如下所示: 但是从Java代码中,您需要将其称为 (这也来自Kotlin。) 如果您不想指定位,则可以添加注释或命名伴侣类。 从文档: 类内的对象声明可以用伴随关键字标记: 可以通过仅使

  • 问题内容: 据我所知,Java没有C#之类的东西。是否有其他Java库提供类似功能?( 反射反射 )有什么区别? 问题答案: 除了达林的出色答案(+1)外,ASM也值得一试。

  • 问题内容: 什么是Java的JavaScript等价物 我需要获取一个数组或所有匹配项的列表 例: 给 http://www.w3schools.com/jsref/jsref_match.asp 问题答案: 检查正则表达式教程 您的代码应类似于以下内容:

  • 问题内容: 我正在开发Java程序,我确实需要能够以一定的频率和持续时间播放声音,类似于c#方法System.Beep,我知道如何在C#中使用它,但是我找不到用Java做到这一点的一种方法。是否有等效的方法或另一种方法? 问题答案: 我认为没有办法在便携式2 Java 中用“哔”声播放音乐1。您将需要使用我认为的API …除非找到可以为您简化事情的第三方库。 如果您想走这条路,那么此页面可能会给您

  • 问题内容: 我对Java的异常包不如.NET那样熟悉。我处于一种情况,如果使用C#编程,我会抛出。 在创建自己的子类之前,我需要知道是否应该在Java中抛出类似的异常类型。 确切的情况是: 我的类是一个提供方法的值对象,该方法返回一个int值。但是,在某些情况下,当前值不能作为int提供,因此此类还提供了一个允许API用户知道何时可以安全地调用它们的方法。 如果主叫用户呼叫时是一个异常应该被抛出。

  • 问题内容: 我有以下用Java编写的代码。我需要与此等效的C#。 问题答案: 这里的C#代码等效于Java。