2016-10-28 10 views
3

これは私の最初の投稿です。今日私はJava用のコンビナトリアルライブラリを使い始めました。この1Javaコンビナトリアル。生成されたデータを含むオブジェクトの作成

https://github.com/dpaukov/combinatoricslib3

私はExcelで三角形の辺の長さ以上の10Kを持っています。私はそれらを2d整数配列に引っ張った。

public class Triangle { 

private int a; 
private int b; 
private int c; 

public Triangle(int a, int b, int c) 
{ 
    this.a = a; 
    this.b = b; 
    this.c = c; 
} 

public boolean isCorrect() 
{ 
    if(this.a + this.b > this.c) 
     return true; 

    return false; 
} 

}

私の問題は、私は三角形のすべての可能な組み合わせを生成するが、オブジェクトの三角形を作成する方法が分からないということです。私はクラスのトライアングルを作成したより

。結果を印刷する方法しか知りません。

public static void main(String[] args) throws IOException { 


    Generator.combination(sides).simple(3).stream().forEach(System.out::println); 



} 

ありがとうございます。乾杯!

EDIT:

これは側面の一例である:

static final int[][] sides = new int[][]{ 

     {71, 100, 1231, 832, 127}, 
     {336, 447, 815, 658, 373}, 
     {126, 444, 556, 221, 1322}, 
     {1226, 662, 985, 87, 991}, 
     {555, 512, 111, 339, 22}, 
    }; 

私は、このデータをすべての可能な三角形を生成したいです。これは側面が、あなたは、さらに適切な型に(マップ)それらを変換する必要があるかもしれません整数、そうでない場合(例えば、文字列)であることを意味していること

Generator 
.combination(sides) 
.simple(3) 
.stream() 
.forEach(
    sides -> new Triangle(sides[0],sides[1],sides[2]) 
); 

注:

+0

一つのこと:あなたが使用している** int型**すべての場所、およびいくつかのストリーミング通話オートボクシングへの可能性がありますオーバー。だから、intと整数の間で切り替える潜在的な隠されたパフォーマンスコストに気をつけてください – GhostCat

答えて

1

はそのようになるはずです。今

、あなたがリストにそれらすべてを収集するために、たとえばたい場合は、あなたが行うことができます:

List<Triangle> triangles = Generator 
    .combination(sides) 
    .simple(3) 
    .stream() 
    .map(sides -> new Triangle(sides[0],sides[1],sides[2])) 
    .collect(Collectors.toList()) 

あなたは二次元のint [] []配列を反復処理し、すべて見つけることができますそのような各ラインための組み合わせ、:心に留めておくべき

Arrays.stream(sides) 
    .forEach(
    line -> { 
     Generator.combination(Arrays.stream(line).boxed().collect(Collectors.toList())) 
     .simple(3) 
     .stream() 
     .forEach(System.out::println); 
    } 
); 
+0

私の編集を見てください。 – whiskermrr

+0

元のコード出力のサンプルを提供してください(つまり、_forEach(System.out :: println)_)、ほんの数行で可能です。 – zeppelin

+0

私はそれが私の数字を印刷していないことに気付きました。 – whiskermrr

関連する問題