我很难找到正确解决问题的方法。(noobAlert!) 我有一个FOR循环,在里面我计算一个浮点数并将其添加到一个向量中。 循环的每次迭代都会与浮点数和名称(字符串)相对应。 在循环之后我找到了这个向量的最小值,我的问题是我无法找到一种方法将它“连接”到对应的字符串。
我的印象是这是一个愚蠢的问题,我可能在错误的地方搜索,但我真的需要一些帮助!thnx引起你的注意..
每个项目对应一个浮点数,它是排名算法的结果。 我只是想获得minValue及其相应的Item。: - )
for (int j = 0; j < energySource.size(); j++) {
Item sourceItem = (Item) energySource.elementAt(j);
if (supply.description.isACover(sourceItem.description)) {
if (reasoner.checkCompatibility(supply.description, sourceItem.description)) {
int RPOT = reasoner.rankPotential(supply.description, sourceItem.description);
rSRC = alfaSRC * RPOT;
} else {
SemanticDescription[] contract = reasoner.contraction(sourceItem.description, supply.description);
int RPOT = reasoner.rankPotential(contract[1], sourceItem.description);
int RPAR = reasoner.rankPartial(contract[0], sourceItem.description);
rSRC = alfaSRC * RPOT + betaSRC * RPAR;
}
rTOT1 = (alfaTOT * rSRC + betaTOT * rSRC) / depthSrc;
totVector.add(rTOT1);
if (rTOT1 < minScore) {
minScore = rTOT1;
bestFunct = supply;
bestIndex = j;
}
System.out.println(supply.name + " + " + sourceItem.name + " >>>rTOT1 " + rTOT1);
} else {
candidati.removeElementAt(j);
j--;
}
}
//rTOT1min=>minValue of totVector
Object rTOT1min = Collections.min(totVector);
Float bestRank = (float) rTOT1min;
System.out.println(" Best Rank : " + bestRank + " Source chosen : " + ______???______);
答案 0 :(得分:1)
编辑:如上所述,HashMap是一个不错的选择,但是如果你不想过多地改变你的代码:
如果要将所有字符串存储在列表或向量或某些此类数据结构中,那么简单的选项(希望不会改变太多代码)将使用indexOf()方法来获取索引向量的最小值,并使用它来使用elementAt()方法查找字符串,假设您的字符串也存储在向量中。
的链接答案 1 :(得分:0)
你可能有更好的运气,也许还有Hashtable;这将允许您构造一个列表,其中值与键唯一关联。 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.html