Java 一种高效的元组分组算法
我想开发一种高效算法,将元组列表分组,如下所示:Java 一种高效的元组分组算法,java,algorithm,Java,Algorithm,我想开发一种高效算法,将元组列表分组,如下所示: public class Tuple<T, R> { private final T left; private final R right; public Tuple(T left, R right) { this.left = left; this.right = right; } public T getLeft() { return
public class Tuple<T, R> {
private final T left;
private final R right;
public Tuple(T left, R right) {
this.left = left;
this.right = right;
}
public T getLeft() {
return left;
}
public R getRight() {
return right;
}
}
公共类元组{
列兵最后离开;
私权;
公共元组(左T,右R){
this.left=左;
这个。右=右;
}
公共T getLeft(){
左转;
}
公共权利{
返还权;
}
}
并根据“左”字段或“右”字段的相等性将它们分组返回。输出可以是以下指定的组列表:
public class Group<L, R> extends Tuple<List<L>, List<R>> {
public Group(List<L> left, List<R> right) {
super(left, right);
}
}
公共类组扩展元组{
公共组(左列表、右列表){
超级(左、右);
}
}
我怎样才能有效地做到这一点?有没有一种方法可以使用一些中间并发数据结构来并行这种算法
输入示例:Tuple(4,C),Tuple(1,A),Tuple(2,B),Tuple(3,B),Tuple(3,A),Tuple(5,C),Tuple(6,D)
预期产出:组((1,2,3),(A,B)),组((4,5),(C)),组((6),(D))
非常感谢您的帮助。任何伪代码都将受到欢迎。看起来您正在尝试构建一个虚拟代码。 图表可以用以下方式表示:
因为您的图形是,所以每个组都将表示为一个强连接的组件,您只需运行即可找到这些组。所以您自己没有尝试过任何操作吗?我们必须自己设置测试数据,每个人一遍又一遍?请。我建议使用
集合
,而不是列表
。