gpt4 book ai didi

java - 二维数组/结构体问题

转载 作者:行者123 更新时间:2023-12-02 08:21:41 26 4
gpt4 key购买 nike

我需要有关在程序中组织灵活数据结构的建议。看,我必须组织数据结构,乍一看就像二维数组就像

double[][] arr = new double[10][10];

如果您需要设置或获取此数组的某些元素,您将编写类似

double x=arr[i,j]; // arr[i,j]=y;

其中 i 和 j 是整数

但是在我的程序中我需要类似的东西

double k=arr[obj1,obj2]

其中 obj1 和 obj2 是对象

我有一个想法 - HashMap 可以解决我的问题

所以它看起来像

class Coordinates {
Object1 obj1;
Object2 obj2;
//TODO override equals() method
Coordinates(Object1 obj1, Object2 obj2) {
this.obj1=obj1;
this.obj2=obj2;
}
}
...
HashMap<Coordinates, Double> semiTwoDimArray=new HashMap<Coordinates, Double>();

元素的设置和获取看起来像

semiTwoDimArray.put(new Coordinates(obj1, obj2), 3.14);

得到可能是这样的

double pi = semiTwoDimArray.get(new Coordinates(obj1, obj2));

但对我来说:1)这样的实现存在遍历行或列的问题(操作过多)2)看起来不优雅

有人可以建议我更好的解决方案吗?

最佳答案

您可以将结构包装到一个类中,并提供漂亮且干净的 get(Object,Object)set(Object,Object,double) 方法。

这样,不优雅的代码将包含在类中,并且不需要每次访问结构时都重复。

如果您发现原始选择不是最优的,这也将使更改底层数据结构变得容易。

关于java - 二维数组/结构体问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5354659/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com