1

重複の可能性:
Java データ構造のようなテーブル

Java のテーブルのようなデータ構造を探しています。これまでのところ、私はそれを見つけることができず、確かにあるに違いないことを知っているので、本当にイライラしています. これはテーブルのグラフィカルな表現とは関係なく、単なる論理モデルであることに注意してください。

アイデアは単純です。次のようなテーブルがあります。

+-------+-----+-----------+
| Name  | Age | city      |
+-------+-----+-----------+
| Steve | 21  | London    |
| John  | 40  | Amsterdam | 
+-------+-----+-----------+

次に、さまざまな行を反復処理し、列名に基づいて値を取得する必要があります。柔軟でなければならないので、前もって列名がわかりません (したがって、Bean のリストはオプションではありません)。この機能を持つ私が見つけることができる最良の構造はjava.sql.ResultSetですが、SQL に関連しないコンテキストでそれを使用するのは快適ではありません。また、すべての行のキーを格納することを意味するため、HashMaps のリストも必要ありません。これは非常に非効率的です。

Javaでテーブルのような構造を検索すると、GUI関連の投稿が圧倒的に多いため、基本的な構造のように見えますが、何も見つかりません。

編集

必要なものの具体例として、次のコードを示します。

TableStructure table = getTable(); // Gets my desired table with its filling

while (table.next()){
    System.out.println("Name: " +  table.get("Name"));
    System.out.println("Age: " + table.get("Age"));
    System.out.println("City: " + table.get("City"));
    System.out.println("NonExistent: " + table.get("NonExistent"));
}

次の出力が生成されます。

Name: Steve
Age: 21
City: London
NonExistent: null
Name: John
Age: 40
City: Amsterdam
NonExistent: null
4

2 に答える 2

2

AResultSetはタプルのリスト (または順序付けの必要性と要素の多重度に応じてセット) であるため、本当に一般的な答えは次のようになります。

class TableStructure<Tuple>
{
    List<Tuple> tuples;
    Iterator iterator;

    public Tuple next() 
    {
        if ( iterator == null ) { iterator = tuples.iterator(); /* NPE prone */ }
        return iterator.next()
    }
}

(または、イテレータを直接TableStructure拡張 して使用することをお勧めします)List

どこ

class Tuple { Map<String,Object> attributes; }

この構成により、テーブル内でさまざまな行サイズが可能になります。これは、DB 設定では、最初の (または 2 番目の?) 標準形式の原則に違反します。

それが少し役立つことを願っています。

乾杯、

于 2012-10-29T13:24:15.653 に答える
0

はどうList<Map<String, ?>>ですか?具体的な実装については、を使用できますArrayList<HashMap<String, Object>>

于 2012-10-29T12:37:39.830 に答える