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

如何仅通过提供大小就可以像在Java中那样在Kotlin中创建数组?

梁成双
2023-03-14
问题内容

我如何像在Java中那样创建数组?

int A[] = new int[N];

如何在Kotlin中做到这一点?


问题答案:

根据参考资料,可以通过以下方式创建数组:

  • 对于Java的基本类型有不同的类型IntArrayDoubleArray等等。它存储拆箱值。

它们是使用相应的构造函数和工厂函数创建的:

    val arrayOfZeros = IntArray(size) //equivalent in Java: new int[size]
val numbersFromOne = IntArray(size) { it + 1 }
val myInts = intArrayOf(1, 1, 2, 3, 5, 8, 13, 21)

第一个与Java中的相似,它只是创建一个填充有默认值的原始数组,例如,对于IntfalseBoolean

  • 非基本数组由Array<T>类表示,其中T项类型。

T还是可以的类型Java中的原始的一种(IntBoolean,…),但值内将等同盒装Java的IntegerDouble等等。

同样,T可以像和一样为可为空和为非空。String``String?

这些以类似的方式创建:

    val nulls = arrayOfNulls<String>(size) //equivalent in Java: new String[size]
val strings = Array(size) { "n = $it" } 
val myStrings = arrayOf("foo", "bar", "baz")

val boxedInts = arrayOfNulls<Int>(size) //equivalent in Java: new Integer[size]
val boxedZeros = Array(size) { 0 }


 类似资料:
  • 据我所知,我不认为Java有像kotlin这样的扩展函数。但是我想知道有没有办法在java中扩展字符串类来创建扩展函数。

  • 问题内容: 由于Java泛型的实现,因此不能有以下代码: 如何在保持类型安全的同时实现此目的? 我在Java论坛上看到了这样的解决方案: 但是我真的不知道发生了什么。 问题答案: 我不得不问一个问题:您的GenSet“已选中”还是“未选中”?那是什么意思? 检查:强打字。GenSet明确地知道什么类型的包含对象(即它的构造是明确要求有Class 参数,当他们通过了类型不是参数的方法会抛出异常E。见

  • 编辑 在@CopsOnRoad的帮助下,我取得了如下成就: 完整代码:

  • 问题内容: 我想通过Java在Kafka(kafka_2.8.0-0.8.1.1)中创建一个主题。如果我在命令提示符下创建一个主题,并且如果我通过java api推送消息,它也可以正常工作。但是我想通过java api创建一个主题。经过长时间的搜索,我发现了以下代码, 我尝试了上面的代码,它表明创建了主题,但是无法在该主题中推送消息。我的代码有什么问题吗?还是通过其他方式实现以上目标? 问题答案:

  • 我有一个尺寸为800x800的图像,其大小为170 kb。我想将此图像调整为600x600。调整大小后,我希望缩小图像大小。我该怎么做?

  • Kotlin编译器给了我以下警告: 警告:(399,1)Kotlin:内联“…”的预期性能影响可能是无关紧要的。内联最适用于具有lambda参数的函数 在这种情况下,我想取消显示此警告。但是,我不知道给什么值,也找不到任何文档说明接受什么值。 可以为提供哪些可能的值,它们是什么意思?