我想创建一个包含两个值而不是一个值的列表。所以会有一个包含每个节点的等级和相应主题的列表。
您所描述的,一个事物导致其伙伴事物的配对,Map在 Java 中被称为 a,在某些环境中也被比喻为“字典”。
但是,这种方法似乎效率不高,因为我每次都必须浏览整个列表。所以从概念上讲,有没有更有效或更舒适的方式来做这个程序?
无论您如何构建数据,每当您想要报告数据(例如计算总数或平均值)时,您都需要遍历数据。
如果您需要对未更改的数据多次执行此报告,并且该循环的性能已被证明(未假定)对您的应用程序的性能有重大影响,那么请考虑将您的结果副本缓存到另一个数据中结构体。
不要落入过早优化的陷阱。对于您考虑的所有场景,对于中小数据量,循环的效率对于现代计算机硬件而言将没有意义。
在面向对象编程中,我们通常选择将数据打包为由类定义的对象,而不是在列表或数组中管理原始数据片段。我建议您首先定义一个类来保存您的学生标识符、科目和成绩。收集该类的对象,然后报告该集合。
提示:在下个月发布的 Java 16 中,您可以使用record更简单的方式编写一个主要目的是透明且不可变地携带数据的类。编译器隐式提供构造函数、getter、equals&hashCode和toString.
public record Grade ( UUID studentId , String courseCode , String grading ){}