Java数据结构建议

tec*_*low 3 java data-structures jakarta-ee

我是这个领域的新手,所以请原谅我的愚蠢错误:) 所以我面临的问题是:在我的网页上,我正在显示一个表格。现在我的问题与表格的三列有关。

    First is : Area Code
    Second is : Zone Code
    Third is: Value
Run Code Online (Sandbox Code Playgroud)

这三者的关系是:

1 个区号有 6 个不同的区号,所有这 6 个区号都有相应的“值”

我对所有区号都有相同的区号:

   Zone codes are: 111, 222, 333, 444, 555, 666
Run Code Online (Sandbox Code Playgroud)

在浏览你的 stackoverflow 之后,我想我可以使用这个结构:

    Map<Integer, Map<Integer, Double>> retailPrices = new HashMap<Integer, Map<Integer, Double>>();
    Map<Integer, Double> codes = new HashMap<Integer, Double>(); 
Run Code Online (Sandbox Code Playgroud)

其中,reatailPrices 将区域代码和区域代码地图作为键,“值”作为值。

但是当我尝试通过 SQL 结果集填充它时,我收到以下错误:

put(Integer, Map<Integer,Double>)类型中 的方法Map<Integer,Map<Integer,Double>>不适用于参数 (Integer, Double)

在线的:

 while(oResult.next())

      retailPrices.put((new Integer(oResult.getString("AREA"))), (codes.put(new Integer(oResult.getString("ZONE_CODE")), new Double(oResult.getString("VALUE")))));


        }
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题。我是否遵循正确的方法?

duf*_*ymo 5

如果这三项相关,我建议创建一个对您的问题有意义的对象并将它们封装在一起:

public class Area
{
    private int areaId;
    private List<Zone> zones;

    // other code here
}

public class Zone
{
    private int zoneId;
    private double value;

    // other code here
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以在你的代码中使用 List<Area> 。您还可以根据需要封装与这些相关的任何规则。

Java 是一种面向对象的语言。停止从原语的角度思考,开始从对象和封装的角度思考。