我需要一个简单的Java程序,可以为我生成一组自定义集,例如{'1','2','3','4'}。结果应为:{'1','2'},{'2','3'},{'3','4'},{'1','2','3'},{ '2','3','4'}。
我已经尝试了powerset的代码,但是输出不是理想的。如果代码可能是类似的,那将是可理解的:
for(j=2;j<set.size()-1;j++)
{
for(i=0;i<set.size()-1;i++)
{
//a[i],a[i+1] when j=2
//a[i],a[i+1],a[i+2] when j=3
}
}
我知道.size()是用于ArrayList的,而a [i]是用于简单的数组的,我已经写了这两种方法,因为任何方法都可以!!提前致谢!!:)
此代码应打印所需的值:
final int[] values = {1, 2, 3, 4};
for (int size = 2; size < values.length; size++) {
for (int i = 0; i + size <= values.length; i++) {
for (int j = 0; j <= size - 1; j++) {
System.out.print(values[i + j]);
}
System.out.println();
}
}
从该示例中,我们看到您要打印长度大于1且小于总值的值的集合,因此这是下面的行:
for (int size = 2; size < values.length; size++) {
之后,我们计算该子集的起始索引,注意不要遇到IndexArrayOutOfBounds异常(请参见下面的行)
for (int i = 0; i + size <= values.length; i++) {
从那里我们只打印从i索引开始的值以及子集的大小长度
for (int j = 0; j <= size - 1; j++)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句