Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个“问题”;对",;Java中在同一数组中存储字符串和整数的方法?_Java_Arrays_Typed Arrays - Fatal编程技术网

是否有一个“问题”;对",;Java中在同一数组中存储字符串和整数的方法?

是否有一个“问题”;对",;Java中在同一数组中存储字符串和整数的方法?,java,arrays,typed-arrays,Java,Arrays,Typed Arrays,我认为用Java在同一数组中存储字符串和整数在某些情况下会更有效,但我知道Java是强类型的 有办法吗?如果没有,我能做什么?您可以使用对象[]来完成此操作。但是请不要。如果您觉得需要在单个数组中混合不同的类型,也许是时候重新考虑您的设计了(这里有一个想法:在存储它们之前,将字符串s转换为整数s甚至ints)。在同一数组中存储这样不同的数据类型是不“正确的”。您可以使用对象[]来实现这一点。但是请不要。如果您觉得需要在单个数组中混合不同的类型,也许是时候重新考虑您的设计了(这里有一个想法:在存储

我认为用Java在同一数组中存储字符串和整数在某些情况下会更有效,但我知道Java是强类型的


有办法吗?如果没有,我能做什么?

您可以使用
对象[]
来完成此操作。但是请不要。如果您觉得需要在单个数组中混合不同的类型,也许是时候重新考虑您的设计了(这里有一个想法:在存储它们之前,将
字符串
s转换为
整数
s甚至
int
s)。在同一数组中存储这样不同的数据类型是不“正确的”。

您可以使用
对象[]
来实现这一点。但是请不要。如果您觉得需要在单个数组中混合不同的类型,也许是时候重新考虑您的设计了(这里有一个想法:在存储它们之前,将
字符串
s转换为
整数
s甚至
int
s)。在同一阵列中存储如此不同的数据类型是不“正确的”。

定义“更高效”通常意味着更少的存储空间或处理器密集型。这些目标截然相反。挑战在于平衡它们

您可以使用前面提到的
对象[]
类型,但这需要确定类型,然后在使用之前将每个元素转换为
字符串或
Int

装箱,转换为
对象
类型,取消装箱,转换为原始类型 Java中相对昂贵的操作

可能的解决方案(如果必须使用相同的数组索引存储):

  • 如果不需要对
    int
    项进行进一步的数学处理,请使用
    .toString()
    方法将其转换为
    字符串
    ,并将其存储在
    字符串
    的数组中

  • 如果整数元素的数量远低于
    字符串
    s,请使用
    .toString()
    方法将其转换为
    字符串
    ,并将其存储在
    字符串
    的数组中。然后使用
    Integer.parseInt()
    parseInt()
    被认为是一个缓慢的操作)将
    int
    解析出来

  • 如果内存不是问题,则制作两个大小相同的单独数组,一个为
    String
    类型,另一个为
    int
    类型。选择一个作为主要(人口最多)。使用标志值(“
    String
    ”和
    Integer.MIN\u value
    表示
    int
    )指示结果为其他类型,并应使用存储在其他数组中的值。这将以占用更多内存为代价保留公共索引

如果可能的话,我建议重写代码以使用两个独立的数组。

定义“更高效”通常意味着更少的存储空间或处理器密集型。这些目标截然相反。挑战在于平衡它们

您可以使用前面提到的
对象[]
类型,但这需要确定类型,然后在使用之前将每个元素转换为
字符串或
Int

装箱,转换为
对象
类型,取消装箱,转换为原始类型 Java中相对昂贵的操作

可能的解决方案(如果必须使用相同的数组索引存储):

  • 如果不需要对
    int
    项进行进一步的数学处理,请使用
    .toString()
    方法将其转换为
    字符串
    ,并将其存储在
    字符串
    的数组中

  • 如果整数元素的数量远低于
    字符串
    s,请使用
    .toString()
    方法将其转换为
    字符串
    ,并将其存储在
    字符串
    的数组中。然后使用
    Integer.parseInt()
    parseInt()
    被认为是一个缓慢的操作)将
    int
    解析出来

  • 如果内存不是问题,则制作两个大小相同的单独数组,一个为
    String
    类型,另一个为
    int
    类型。选择一个作为主要(人口最多)。使用标志值(“
    String
    ”和
    Integer.MIN\u value
    表示
    int
    )指示结果为其他类型,并应使用存储在其他数组中的值。这将以占用更多内存为代价保留公共索引


如果可能的话,我建议重写代码以使用两个单独的数组。

Object[]
。但你为什么要这样?你说的更有效率是什么意思?它能提高你的应用程序的性能吗?是的,有一种方法。你为什么认为你需要它?您最终想要实现什么?
Object[]
。但你为什么要这样?你说的更有效率是什么意思?它能提高你的应用程序的性能吗?是的,有一种方法。你为什么认为你需要它?你到底想实现什么?所以,我只是在想,如果我可以保存一些代码行,将它们存储在同一个数组中,现在我发现最好对每种类型使用数组。所以,我只是在想,如果我可以保存一些代码行,将它们存储在同一个数组中,现在我发现对每种类型使用数组更好。谢谢!,现在我看到最好将它们存储在每种类型的数组中,谢谢!,现在我发现最好将它们存储在每种类型的数组中