2017-06-14 18 views
-1

私はCSVファイルを読み込み、各行の値に基づいてオブジェクトを作成しています。ID変数の特定の値を持つオブジェクトを取得

new User(x, y, z); 

しかし、どうすれば新しく作成されたオブジェクトを見つけることができますか?特定のクラス(つまりユーザー)のすべてのオブジェクトをループする方法はありますか?または少なくともIDに基づいて1つを見つけるか? (例えば、ユーザ(1))SQLでは

私ができるだけで

select * from X where ID=1 

が、私は、テキストファイルから解析されたデータに基づいていくつかの無名のオブジェクトを作成した後、Javaでこれを行うことができますか?

+0

あなたがそれにアクセスするための変数を宣言:ユーザーユーザー=新しいですユーザ(x、y、z); –

+0

あなたはSQLに 'X'のようなコンテナに入れます。 – erip

+0

マップに入れるだけです。 – tsolakp

答えて

0

まず、オブジェクトをリストに格納します。

Optional<User> result = usersList.stream().filter(x -> x.getId() == 1).findFirst(); 

このソリューションは、あなたのUserクラス内idフィールドとgetId()と呼ばれるゲッターを持っている前提としています。後で

List<User> usersList = new ArrayList<>(); 
... 
... // add each object to usersList 

は、あなたの SQLクエリを模倣するために、あなたはの線に沿って何かを行うことができます。

読書 - Optional<T>

+1

私は彼がアプリケーション内に何かを格納する方法を知らないと思います。 –

3

または少なくともIDに基づいて1つを見つけるか?

あなたは識別子がUserで作成されていますか?
Userのキーで値がUserのオブジェクトであるMapにオブジェクトを保存するだけです。
IDとしてInteger

、それは与えるだろう:

Map<Integer, User> usersById = new HashMap<>(); 

for (...){ 
    usersById.put(userId, new User(userId, x, y, z)); 
} 

を次にあなたがこの方法でユーザーを検索することができます。

User user = usersById.get(1); 
関連する問題