使用对象和基元的 java 函数

标签 java arrays object primitive

我正在尝试编写一个接受数组并以不同顺序返回数组的函数。

它适用于 int、double、string、object 或数组中的任何对象。

以下是字符串函数的示例。

public String[] randomize(String[] array, int randomKey)
{
    //algorithm here
    return newStringArray;
}

对于所有的对象类型,我知道我可以这样做

public Object[] randomize(Object[] array, int randomKey)
{
    //algorithm here
    return newObjectArray;
}

除了将所有基本类型装箱到一个对象中,还有其他方法可以只编写一次算法,而无需为每个基本数组创建函数吗?是否有适用于对象和基元的通用数组类型?

谢谢

附言由于性能损失不想使用自动装箱。 引自[自动装箱]:http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

It is not appropriate to use autoboxing and unboxing for scientific computing, or other performance-sensitive numerical code.

最佳答案

遗憾的是泛型在这里不起作用,因为泛型不涵盖基元,但它们涵盖基元数组。原始数组也不会自动装箱到包装器类数组中。这是您必须手动执行的操作,但速度非常慢。一种解决方案是为每个基元提供覆盖,类似于 Arrays.sort 的实现方式。这会产生大量重复代码。另一种解决方案是使用类似于 ArrayList 的 Array 接口(interface),它模拟 Array,获取/设置索引的方法,并为每个基元和对象提供子类。然后您可以使用 Array 接口(interface),而不用关心实际类型是什么。

关于使用对象和基元的 java 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25281409/

相关文章:

Java:有符号长到无符号长字符串

Java如何根据另一个复选框是否已被选中来启用和禁用复选框

Java DecimalFormat - 使用整数

javascript - 如何从对象数组 javascript 创建特定对象?

Java 平均值返回无穷大

Javascript forEach 对象数组递归

java - Eclipse + tomcat - 部署时出现 ClassNotFound 异常

c - 理解字符串和数组

python - 使用 Python 将值插入到 json 文件中的特定位置

javascript - 在包含对象数组的对象内定义方法(javascript)