【发布时间】:2019-05-14 01:44:55
【问题描述】:
我有这门课
public class Operation {
private double value;
private boolean inc;
public Operation(double value, boolean inc) {
this.value = value;
this.inc = inc;
}
public double getValue() {
return value;
}
public void setValue(double value) {
this.value = value;
}
public boolean isInc() {
return inc;
}
public void setInc(boolean inc) {
this.inc = inc;
}
@Override
public String toString() {
return "Operation{" + "value=" + value + ", inc=" + inc + '}';
}
}
现在我有了这个列表
public class TestOperation {
public static void main(String[] args) {
List<Operation> listOperation1 = new ArrayList<>();
listOperation1.add(new Operation(1.3, true));
listOperation1.add(new Operation(2.7, true));
listOperation1.add(new Operation(0.9, false));
listOperation1.add(new Operation(0.8, false));
//Generate posible Rotation listOperation1
//Operation(1.3, true), Operation(2.7, true), Operation(0.9, false), Operation(0.8, false)
//Operation(1.3, true), Operation(2.7, true), Operation(0.8, false), Operation(0.9, false)
//Operation(2.7, true), Operation(1.3, true), Operation(0.9, false), Operation(0.8, false)
//Operation(2.7, true), Operation(1.3, true), Operation(0.8, false), Operation(0.9, false)
List<Operation> listOperation2 = new ArrayList<>();
listOperation2.add(new Operation(1.5, true));
listOperation2.add(new Operation(2.9, true));
listOperation2.add(new Operation(4.6, true));
//Generate posible Rotation listOperation2
//Operation(1.5, true), Operation(2.9, true), Operation(4.6, true)
//Operation(1.5, true), Operation(4.6, true), Operation(2.9, true)
//Operation(2.9, true), Operation(4.6, true), Operation(1.5, true)
//Operation(2.9, true), Operation(1.5, true), Operation(4.6, true)
//Operation(4.6, true), Operation(2.9, true), Operation(1.5, true)
//Operation(4.6, true), Operation(1.5, true), Operation(2.9, true)
}
}
旋转只发生在inc = true和inc = false之间,不混合!
inc = true 的项目数可以与 inc = false 不同。甚至,有些可能不存在。
列表中所有提交的项目都必须处理,不能丢失,但不能重复(像对象,而不是像值)。
如何产生这种旋转?
【问题讨论】:
-
如果输入像
[true, false, true, false, true, false]会发生什么? -
@Holger,我忘记了这种情况,因为我之前订购过,先是
true,然后是false -
那么应该怎么办呢?或者您的任务是否意味着在轮换之前进行排序?
-
@Holger 没关系,
true只需要和true一起订购,false和false一起订购,这不会改变情况。 -
然后,在问题中添加一个示例,说明接下来会发生什么。
标签: list java-8 java-stream permutation