找到向量的最小值并分配相应的字符串

时间:2012-03-27 23:20:17

标签: java

我很难找到正确解决问题的方法。(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 : " + ______???______);

2 个答案:

答案 0 :(得分:1)

编辑:如上所述,HashMap是一个不错的选择,但是如果你不想过多地改变你的代码:

如果要将所有字符串存储在列表或向量或某些此类数据结构中,那么简单的选项(希望不会改变太多代码)将使用indexOf()方法来获取索引向量的最小值,并使用它来使用elementAt()方法查找字符串,假设您的字符串也存储在向量中。

以下是Vector JavaDoc

的链接

答案 1 :(得分:0)

你可能有更好的运气,也许还有Hashtable;这将允许您构造一个列表,其中值与键唯一关联。 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Hashtable.html