Java 成对获取最大值

Java 成对获取最大值,java,Java,我有很多对的形式: itemid核心 1 2 1 4 1 3 2 2 2 5 我想获得其他itemid的最大分数 结果 itemid核心 1 4 2 5 解决方案?您可以先按项目ID对项目列表进行排序,然后按核心对项目ID是否相等进行排序。 一旦您对列表进行了排序,它将遍历所有元素并拾取最大值以获得相等的itemid。 如果您需要实际代码,请告诉我 如果是SQL。 从表中选择itemid、maxcore 按项目I

我有很多对的形式:

itemid核心 1 2 1 4 1 3 2 2 2 5 我想获得其他itemid的最大分数 结果

itemid核心 1 4 2 5
解决方案?

您可以先按项目ID对项目列表进行排序,然后按核心对项目ID是否相等进行排序。 一旦您对列表进行了排序,它将遍历所有元素并拾取最大值以获得相等的itemid。 如果您需要实际代码,请告诉我

如果是SQL。 从表中选择itemid、maxcore 按项目ID分组。

使用一个项目ID作为键,maxcore作为其值,在每次迭代中,将当前值与新核心进行比较:


.

这将为您提供一个按核心按升序排序的配对列表:

package com.pair.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class MainClass {

/**
 * @param args
 */
public static void main(String[] args) {
    List<Pair> list = new ArrayList<Pair>();
    list.add(new Pair(1, 2));
    list.add(new Pair(1, 4));
    list.add(new Pair(1, 3));
    list.add(new Pair(2, 2));
    list.add(new Pair(2, 5));
    Collections.sort(list);
    System.out.println(list);
}

}

class Pair implements Comparable<Pair>{

public Pair(int i, int j) {
    itemId = i;
    core = j;
}

Integer itemId;

Integer core;

@Override
public String toString(){
    return itemId + " " + core;
}

public int compareTo(Pair compare) {
    return core.compareTo(compare.core);
}
}

这是在某个数据库中,还是您希望在java中实现此结果???-1,因为您没有尝试任何东西。@n99o-所以不是要求人们为您编写程序的地方。这是一个程序员提问以帮助自己编写代码的地方。@Stephen C:我不认为问题出在他身上,因为他是在不假思索地提问。但问题在于,声誉超过15000的人直接给出了一个完整的解决方案。@Vikiii-问题是两者兼而有之。如果OP没有询问,那么答案就不会公布。请注意,OP没有寻求帮助。。。他特别提出了一个解决方案。请不要通过提供封装的答案来鼓励懒惰的问题。请不要通过提供封装的答案来鼓励懒惰的问题。
1 4
2 5
package com.pair.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;


public class MainClass {

/**
 * @param args
 */
public static void main(String[] args) {
    List<Pair> list = new ArrayList<Pair>();
    list.add(new Pair(1, 2));
    list.add(new Pair(1, 4));
    list.add(new Pair(1, 3));
    list.add(new Pair(2, 2));
    list.add(new Pair(2, 5));
    Collections.sort(list);
    System.out.println(list);
}

}

class Pair implements Comparable<Pair>{

public Pair(int i, int j) {
    itemId = i;
    core = j;
}

Integer itemId;

Integer core;

@Override
public String toString(){
    return itemId + " " + core;
}

public int compareTo(Pair compare) {
    return core.compareTo(compare.core);
}
}