项目清单及其分数 - 需要在排序后排序并找到它们的位置

时间:2017-03-25 06:08:49

标签: java sorting position element

我有一个像

这样的项目列表

项目 - 得分

衬衫 - 1245

手表 - 25

皮带 - 320

鞋子 - 540

肥皂 - 110

现在我想根据他们的分数对这些项目进行排序

排序位置 - 得分 - 项目

0 - 52 - 手表

1 - 110 - sopas

2 - 320 - 腰带

3 - 540 - 鞋子

4 - 1245 - 衬衫

现在我需要,如果我给项目然后我想知道它的位置

例如:如果我说&衬衫'那么它应该返回4.

有没有可用的实用程序?没有项目是1000,像这样我有10个不同的列表。

请帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用该集合,比较器。我将向您展示示例代码,这可能对您有帮助。

public static void main(String[] args) {
TreeMap items=new TreeMap(new Sorting());

items.put(new ListItems("shirts",1245),1245);
items.put(new ListItems("watches",25),25);

items.put(new ListItems("belts",320),320);

items.put(new ListItems("shoes",540),240);

items.put(new ListItems("soaps",110),110);


ArrayList<ListItems>l=new ArrayList(items.keySet());

for(ListItems list:l)
{

if(list.getItem().equalsIgnoreCase("watches"))
    System.out.println("index is : "+l.indexOf(list));
}
}
}

class ListItems
{
public String getItem() {
    return item;
}
public int getScore() {
    return score;
}
public void setScore(int score) {
    this.score = score;
}
public ListItems(String item,int score) {
    super();
    this.score = score;
    this.item = item;
}
private int score;
private String item;
@Override
public String toString() {
    return "ListItems [score=" + score + ", item=" + item + "]";
}

}
class Sorting implements Comparator<ListItems>
{
@Override
public int compare(ListItems o1, ListItems o2) {
    if(o1.getScore()<o2.getScore())
        return -1;
    if(o1.getScore()>o2.getScore())
        return 1;
    else
        return 0;
    }

}