【頻出】JavaのintとIntegerの違いを解説
勉強ちゃん
いろいろ勉強
Javaで開発していると、Listの中から特定の要素を取り出す処理は頻出です。
この記事では、for文
、拡張for文
、Stream API
を使った方法を例付きでわかりやすく解説します。
まずは共通で使うデータとして、User
というクラスとそのリストを用意します。
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
List<User> users = Arrays.asList(
new User("テストさん1", 25),
new User("テストさん2
", 30),
new User("テストさん3
", 20)
);
for (int i = 0; i < users.size(); i++) {
if (users.get(i).getAge() > 25) {
System.out.println(users.get(i).getName());
}
}
✅ インデックスを使ってデータを扱いたいとき、for文
が便利!
for (User user : users) {
if (user.getAge() > 25) {
System.out.println(user.getName());
}
}
✅ 読みやすく、安全。Java初心者〜実務でもよく使われます
List<User> filtered = users.stream()
.filter(user -> user.getAge() > 25)
.collect(Collectors.toList());
for (User u : filtered) {
System.out.println(u.getName());
}
👉 filter()
で条件に合う要素だけを抽出
👉 collect(Collectors.toList())
で新しいリストを生成
テストさん2
」の人だけ取り出すList<User> result = users.stream()
.filter(user -> "テストさん2
")
.equals(user.getName()
)
.collect(Collectors.toList());
ミス内容 | 対処法 |
---|---|
NullPointerException | nullチェックを入れる |
複数条件が必要 | && |
1件しかないと思ってget(0) する | リストが空でないか確認する |
方法 | 特徴 | 推奨度 |
---|---|---|
for 文 | 古い、細かい制御ができる | ★★☆☆☆ |
拡張for | 安全&読みやすい | ★★★★☆ |
Stream.filter() | シンプル&パワフル | ★★★★★ |
for-each
で十分stream().filter().collect()
が便利