gpt4 book ai didi

java - 简单的迭代器循环给出了意想不到的结果

转载 作者:行者123 更新时间:2023-11-30 01:40:07 25 4
gpt4 key购买 nike

我确信我的逻辑有一个明显的错误,但我似乎无法弄清楚我做错了什么。很简单,我有一个安全代码的数组列表,我想计算每个安全代码组合之间的相关性。我的代码如下:

private void crossCorr(ArrayList<String> codes, HashMap<String, Stock> stockMap){

// iterate through the codes list and get all the cross correlations:

Iterator<String> itr1 = codes.iterator();
while(itr1.hasNext()){
String code1 = itr1.next();
System.out.println(" ----- " +code1);
Iterator<String> itr2 = codes.iterator();
ArrayList<Double> corrs = new ArrayList<Double>();
HashMap<String, Double> codeCorr = new HashMap<String, Double>();
String code2="";
double corr=-2;
while(itr2.hasNext()){
code2 = itr2.next();
Maths calcs = new Maths();
corr = calcs.getCorrelation(stockMap.get(code1).getRorHistory(), stockMap.get(code2).getRorHistory());
corrs.add(corr); // we order this list and then use this ordered list
// to find the codes for the stocks with the highest
// correlation for any given stock
codeCorr.put(code2, corr);
System.out.println(code1+" - "+code2+" - Correlation is "+corr);
}
orderCorrs(6, codeCorr, corrs, code1);
}

}

我得到的输出是 -

-----谷歌
GOOG - GOOG - 相关性为 1.0000000000000002
GOOG - YHOO - 相关性为 0.6986623807707519
GOOG - MSFT - 相关性为 0.7275411317567286
GOOG - CSCO - 相关性为 0.8122979333663799
GOOG - AAPL - 相关性为 0.8217785260604609
GOOG - ADBE - 相关性为 0.6102679356472099
GOOG - DISH - 相关性为 0.644852624453125
GOOG - NSOL - 相关性为 0.11600387177879072
GOOG - SBUX - 相关性为 0.6694306410719489
GOOG - PSFT - 相关性为 -0.09921822861087544
GOOG - XOM - 相关性为 0.6728272039489009
GOOG - WMT - 相关性为 0.4004364090315347
GOOG - IBM - 相关性为 0.7559988282095168
GOOG - JPM - 相关性为 0.7085525367336528
GOOG - DNA - 相关性为 0.13628949379947575
GOOG - HPQ - 相关性为 0.7819350018750656
GOOG - KO - 相关性为 0.5700932682157461
GOOG - VZ - 相关性为 0.737881573641585
GOOG - INTC - 相关性为 0.7654127298771953
GOOG - SPY - 相关性为 0.8042488406758052
GOOG - PEP - 相关性为 0.6297924741882344
GOOG - WFC - 相关性为 0.5064491351161948
GOOG - ABT - 相关性为 0.238752389446595
GOOG - QCOM - 相关性为 0.726356709262025
GOOG - COP - 相关性为 0.570604981251932
GOOG - MCD - 相关性为 0.5434872575410538

但我从来没有得到过

YHOO - GOOG - 相关性是......等等

我确信这是一个简单的错误,由于某种原因我没有发现它。

我知道我做了两次相关性计算,一旦我让这部分按预期工作,我就会修复这个问题。

如果我需要提供更多信息,请告诉我。

最佳答案

删除了对我们不知道的代码的引用的快速测试应用程序对我来说效果很好。

是否有可能有什么东西抛出了您没有处理的未经检查的异常?如果您可以发布一个简短但完整的程序来演示该问题,那将有很大帮助。获取完整项目的副本,然后删除一些位(例如硬编码数据和返回值),直到您无法删除任何其他内容而不导致问题消失。当然,到那时您很可能已经自己发现了问题。

顺便说一句,如果您使用的是 Java 1.5 或更高版本,那么使用扩展的 for 循环比显式使用迭代器更简单。你会这样做:

for (String code1 : codes) {
// ...
for (String code2 : codes) {
// ...
}
}

关于java - 简单的迭代器循环给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816480/

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