第一列将具有序列号,第二、第三和第四列将具有x坐标、y坐标和速度。在给定序列号的情况下,我可能需要检索任何字段。假设我想要得到序列号7的y坐标,或者序列号10的速度。一种方法是有一个内部类,包含x,y和速度,并将序列号映射到内部类的对象。但它使事情看起来很复杂,检索特定字段值似乎也很复杂。有更好的解决方案吗?
发布于 2011-07-28 22:27:26
创建一个正确实现hashCode()和equals()的key对象。看起来你的序列号可以直接使用。
创建一个包含需要存储的所有字段的数据对象,并为每个字段x创建一个getX()和setX()。
创建一个Map<KeyObject,DataObject>并将其与您的(密钥,数据)对一起使用。
要非常小心地删除过时的对象,否则会有内存泄漏。
发布于 2011-07-28 22:30:11
如何使用数组或映射(集合->映射)?
使用数组:只需创建一个具有所需维数的数组。在您的案例中:
Array[number_of_itens_to_store][3]
// 3 => 0 = id, 1 = x, 2 =y, 3 = speed使用地图:看看http://download.oracle.com/javase/6/docs/api/java/util/Map.html。您可以使用您的ID作为键( K ),使用数组作为值。
您可以查看集合(http://download.oracle.com/javase/tutorial/collections/index.html),甚至只需按照教程创建自己的集合。
https://stackoverflow.com/questions/6860512
复制相似问题