gpt4 book ai didi

Java:最终字段树形图更改大小

转载 作者:行者123 更新时间:2023-12-02 00:43:09 26 4
gpt4 key购买 nike

我有一个 java 代码,其中包含一个 TRADE_HISTORY 类,该类保存交易历史记录。

类 TRADE_HISTORY 有一个名为 fMapDateOutputPriceRatios 的最终字段,该字段在构造函数中设置。 fMapDateOutputPriceRatios 是日期和 double 组 (TreeMap) 之间的映射。在构造函数中,使用

将字段分配给参数
fMapDateOutputPriceRatios = new TreeMap<Date, double[]>(aOutputPriceRatioData); 

使用

获取日期数量
Set<Date> dates = fMapDateOutputPriceRatios.keySet();

日期的大小在构造函数中打印出来。该类只有一个构造函数。

添加新交易时出现问题。添加新日期时,将使用 double vector ,并从

获得
 double[] outputPriceRatios = fMapDateOutputPriceRatios.get( aDate );

发生错误是因为日期不可用。

在尝试调试错误时,正在打印日期的大小。

构建期间,大小为 1973 个元素。

发生错误时,大小为1964个元素。

特别是,2011 年 4 月 11 日这一日期在发生错误时不可用。

我正在使用 eclipse 并在变量 fMapDateOutputPriceRatios 上设置了一个中断,以便在修改字段时中断。它仅在构造函数期间中断。

关于如何确定 fMapDateOutputPriceRatios 大小变化的原因有什么建议吗?

访问 fMapDateOutputPriceRatios 的唯一行是

TRADE_HISTORY::TRADE_HISTORY(Map<Date, double[]> aOutputPriceRatioData )
fMapDateOutputPriceRatios = new TreeMap<Date, double[]>(aOutputPriceRatioData);
Set<Date> dates = fMapDateOutputPriceRatios.keySet(); // Used to debug error

TRADE_HISTORY::public void addTradeDistribution_0_to_100(Date aDate, ...)
outputPriceRatios = fMapDateOutputPriceRatios.get( aDate ) // Causes error
Set<Date> dates = fMapDateOutputPriceRatios.keySet(); // Used to debug error

最佳答案

对对象实例的最终引用不会使该实例不可变!它只会阻止更改引用以指向不同的对象实例。该引用是最终的——而不是它引用的对象实例的状态。

请注意,keySet() 返回的键集由映射支持。如果从中删除键,相应的映射也会从 fMapDateOutputPriceRatios 中删除。您是否正在修改日期或将其用于除调试之外的其他用途?

关于Java:最终字段树形图更改大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751545/

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