私は今この問題に頭を悩ましています。私は基本的にCSVデータのセットからツリー階層を生成しようとしています。 CSVデータは必ずしも注文する必要はありません。これは次のようなものです:csvからツリー構造を生成
Header: Record1,Record2,Value1,Value2
Row: A,XX,22,33
Row: A,XX,777,888
Row: A,YY,33,11
Row: B,XX,12,0
Row: A,YY,13,23
Row: B,YY,44,98
できるだけ柔軟にグルーピングを実行しようとしています。だろう
Record1
Record2
Value1 Value2
:
A
XX
22,33
777,888
YY
33,11
13,23
B
XX
12,0
YY
44,98
私が保管しています私たちは以下のような出力を得るように、グループ化のための最も簡単なものはvalue1と値2を持つレコード1とRECORD2のためにそれを行うには希望RECORD2下に保存しますリスト内の私のグループ設定 - 現在の私の考えを妨げているかどうかわかりません。このリストは、例えばグループの階層が含まれています
Record1 (SchemaGroup)
.column = Record1
.columns = null
.childGroups =
Record2 (SchemaGroup)
.column = Record1
.columns = Value1 (CSVColumnInformation), Value2 (CSVColumnInformation)
.childGroups = null
次のように、このためのコードは次のようになります。
private class SchemaGroup {
private SchemaGroupType type = SchemaGroupType.StaticText; // default to text
private String text;
private CSVColumnInformation column = null;
private List<SchemaGroup> childGroups = new ArrayList<SchemaGroup>();
private List<CSVColumnInformation> columns = new ArrayList<CSVColumnInformation>();
}
private enum SchemaGroupType {
/** Allow fixed text groups to be added */
StaticText,
/** Related to a column with common value */
ColumnGroup
}
私は基本的な構造を考えるようにしようとし、このためのアルゴリズムを作成stugglingています使用する。現時点では私は私自身のラッパークラスを使用して、下にCSVトップを解析しています:
CSVParser csv = new CSVParser(content);
String[] line;
while((line = csv.readLine()) != null) {
...
}
私はちょうど私のコーディングの脳をキックスタートしようとしています。
どのような考えですか?この問題が提起される方法に基づいて
が
大きな画像は何ですか?列 'A、XX、12,34 'の場合、12と34がAまたはXXに属していることをどのように知っていますか? – palacsint