我有个无法解决的问题。我希望我能让你明白。
给定以下航路点对象列表
列表
例子:
列表
Waypoint a = new Waypoint();
Waypoint b = new Waypoint();
Waypoint c = new Waypoint();
Waypoint d = new Waypoint();
myWaypoint.add(a);
myWaypoint.add(b);
myWaypoint.add(c);
myWaypoint.add(d);
>
k=3 n=4-
新的航路点对象数组
矩阵的预期结果
目标是生成包含这些对象的数组
如果实现算法不是任务的一部分,我会重新推荐一个库,比如组合库,它会为你生成组合。
使用组合lib3
一个使用字符串的简单示例:
Generator.combination("A", "B", "C", "D")
.simple(3)
.stream()
.forEach(System.out::println);
会给你一个输出
[A, B, C]
[A, B, D]
[A, C, D]
[B, C, D]
您可以使用lib生成自定义对象的组合,只需传递您的列表,例如将它们收集到列表列表中。下面的示例作为起点:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.paukov.combinatorics3.Generator;
public class Example {
public static void main(String[] args) {
List<Waypoint> myWaypoint = new ArrayList<>();
Waypoint a = new Waypoint("a");
Waypoint b = new Waypoint("b");
Waypoint c = new Waypoint("c");
Waypoint d = new Waypoint("d");
myWaypoint.add(a);
myWaypoint.add(b);
myWaypoint.add(c);
myWaypoint.add(d);
List<List<Waypoint>> combinations = Generator.combination(myWaypoint)
.simple(3)
.stream()
.collect(Collectors.toList());
combinations.forEach(System.out::println);
}
static class Waypoint {
String name;
public Waypoint(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
}
您可能想阅读这篇关于java组合算法的文章,以找到类似于ApacheCommons
或Google Guava
问题内容: 我有一个对象列表,我想对其进行洗牌。我以为可以使用该random.shuffle方法,但是当列表中包含对象时,这似乎失败了。是否有一种用于改组对象的方法或解决此问题的另一种方法? 这将失败。 问题答案: 应该管用。这是一个示例,其中对象是列表: 请注意,随机播放可在原位运行,并返回None。
我有 和Xlink类,该类在内联变量中工作良好。 对于的XML输入 并且子课程拒绝被取消注册(没有任何异常被抛出)。 注:不幸的是,MOXy不是一个选项。 编辑:新编组对象 Edit2:在对测试对象进行了一些解组和编组的实验之后,我发现我需要在内容的标题中定义xmlns名称空间,以便与类似问题在于,我从一个包装类中获取Course元素,该包装类由resteasy解析出来。因此,生成的类不会携带名称
我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部
问题内容: 我如何用对象填充ArrayList,而内部的每个对象都不相同? 问题答案:
我有以下列表,里面是另一个列表,然后是字符串列表 <代码>列表 示例 除了执行嵌套循环并最终替换列表之外,还有更好的方法吗?也许有溪流?
我有一个类来代表一个玩家的手牌。但是,我(在另一个类中)有一个数组列表,我想在其中表示一堆玩家手。问题是我不知道如何在多手牌的数组列表中将一张牌添加到手牌中。我有一个代表卡牌和一副牌的类,效果很好。我只是试图了解如何将对象添加到数组列表中的对象。谢谢!