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

为什么在Java中使用并行数组?

翟默
2023-03-14
问题内容

Java中是否有真正的并行数组用例?维护相互关联的N个数组似乎太麻烦了。

例:

int  ages[]   = {0,          17,        2,          52,         25};
String names[] = {"None",    "Mike",    "Billy",    "Tom",      "Stan"};
int  parent[] = {0,          3,         1,          0,          3};

我可以创建一个Person类并将对象存储在一个数组中。会贵一点,但是好用得多吗?


问题答案:

并行数组是对诸如Basic(原始语言)之类语言的保留,这些语言除数组外没有其他数据结构。您应该按照您的建议定义对象。



 类似资料:
  • 问题内容: Java不能执行运算符重载,但可以用于和和其他一些类。这怎么可能? 更新: 为什么这样做? 问题答案: 不是操作员重载的示例。在语言中被内置为合并运算符 和 算术加法运算符。 这意味着用Java编写程序的人不能重载运算符,但是就Java语言的语法而言,它被定义为连接和加法运算符。 编辑 它适用于其他类,如和由于自动装箱。 如果您看一下执行字符串连接的Java程序的字节码,您会发现它创建

  • 问题内容: 我知道有很多文章可以解释如何在Java EE中使用CDI,但是我很难弄清楚这实际上带来了什么好处。例如,假设我有一个当前使用Foo实例的类。我可能会做 要么 我一直在阅读CDI,我可以做到: 但是为什么这比以前的基于工厂的方法更好呢?我认为还有一些我不知道的用例,但我无法识别。 如果我理解下面的响应,则概念是DI框架充当集中配置的主对象工厂。这是合理的解释吗? 更新资料 从那时起,我就

  • 问题内容: 我只是想知道为什么在类的方法中使用质数?例如,当使用生成我的方法时,总是使用素数31: 问题答案: 因为您想要乘以的数量以及要插入的存储桶的数量具有正交素数分解。 假设要插入8个桶。如果您要用来乘以的数字是8的倍数,则插入的存储桶将仅由最低有效项(一个根本没有相乘)确定。类似的条目将发生冲突。不适用于哈希函数。 31是一个足够大的素数,因此不可能被它整除(实际上,现代的Java Has

  • 问题内容: 我已经在许多网站上阅读了Optional应该仅用作返回类型,而不能在方法参数中使用。我正在努力寻找一个合理的理由。例如,我有一段逻辑,其中包含2个可选参数。因此,我认为这样写我的方法签名(解决方案1)会很有意义: 许多指定为的网页不应用作方法参数。考虑到这一点,我可以使用以下方法签名并添加清晰的注释以指定参数可以为null,希望将来的维护者将读取,因此始终在使用参数之前进行检查(解决方

  • 问题内容: 为什么总是以随机顺序打印数字,而始终从原始顺序收集元素,即使是从并行流中呢? 输出: 问题答案: 这里有两种不同的“排序”,使讨论变得混乱。 一种是 遇到顺序 ,该 顺序 在流文档中定义。考虑这一点的一种好方法是源集合中元素的 空间 顺序或 从左到右的 顺序。如果源是,请考虑将较早的元素放在较后的元素的左侧。 还有文档中未定义的 处理 或 时间 顺序,但这是由不同线程处理元素的时间顺序

  • 主要原因有两个:关注点分离(SOC)和性能。事实上,它们应该是使用并发的唯一原因;如果你观察得足够仔细,所有因素都可以归结到其中的一个原因(或者可能是两个都有。当然,除了像“就因为我愿意”这样的原因之外)。 1.2.1 为了分离关注点 编写软件时,分离关注点是个好主意;通过将相关的代码与无关的代码分离,可以使程序更容易理解和测试,从而减少出错的可能性。即使一些功能区域中的操作需要在同一时刻发生的情