为了账号安全,请及时绑定邮箱和手机立即绑定

是否有一种“正确”的方式将字符串和整数存储在 Java 中的同一个数组中?

是否有一种“正确”的方式将字符串和整数存储在 Java 中的同一个数组中?

哈士奇WWW 2022-06-23 20:04:33
我认为在 Java 中将 String 和 Integer 存储在同一个数组中会更有效,但我知道 Java 是强类型的。有没有办法做到这一点?,如果没有,我该怎么办?
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

您可以使用 anObject[]来执行此操作。但请不要。如果你觉得你需要在一个数组中混合不同的类型,也许是时候重新考虑你的设计了(这里有一个想法:在存储之前将 s 转换为 s 甚至 s StringIntegerint将这些不同的数据类型存储在同一个数组中根本是不“正确的”。



查看完整回答
反对 回复 2022-06-23
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

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

您可以使用Object[]前面所述的类型,但这需要确定类型,然后将每个元素转换为 aStringInt在使用之前。

装箱、转换为Object类型和拆箱、转换为原始类型在 Java 中是相对昂贵的操作。

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

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

  • 如果 Integer 元素的数量会比Strings 少很多,使用.toString()方法将其转换为 aString并将其存储在 s 的数组中String。然后使用.(被认为是一个缓慢的操作)将 s 解析int出来Integer.parseInt()parseInt()

  • 如果内存不是问题,请创建两个大小相同的单独数组,一个是 type String,另一个是 type int。选择一个作为主要(人口最多)。使用标志值(“” forStringInteger.MIN_VALUEfor int)来指示结果是其他类型,并且应该使用存储在其他数组中的值。这以使用更多内存为代价保留了公共索引。

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


查看完整回答
反对 回复 2022-06-23
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

  package ArrayPractice;

    import java.util.ArrayList;

    import java.util.Scanner;

    public class Question8 {

        public static void main(String[] args) {

            Scanner sc = new Scanner(System.in);

            System.out.println("Enter the array range: ");

            int i= sc.nextInt();

            int [] data= new int[i];

            ArrayList<Object> testing= new ArrayList<>();

            Object [] demo= new Object[i];


            for (int y = 0; y < data.length; y++) {

                System.out.println("Enter the Array number: " + y);

                demo[y]= sc.next();

            }


            for(Object o: demo){

                System.out.println(o);

            }


        }

    }


查看完整回答
反对 回复 2022-06-23
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号