1
1

More than 3 years have passed since last update.

[Java]ListとSetの違い

Posted at

List

https://docs.oracle.com/javase/jp/8/docs/api/java/util/ArrayList.html
順序つきの配列で、値の重複が可能。

ArrayList<String> fruits = new ArrayList<>();
fruits.add("りんご");
fruits.add("ばなな");
fruits.add("ぶどう");
fruits.add("りんご"); // りんごを複数登録する

for (String f : fruits) {
  System.out.println(f);
}

-> りんご
-> ばなな
-> ぶどう
-> りんご

格納した順序で、かつ重複登録したりんごが格納できています。
順序を保持するため、2番目のりんごと4番目のりんごをそれぞれ別に扱えるようになっています。

Set

https://docs.oracle.com/javase/jp/8/docs/api/java/util/HashSet.html
要素の順番を保証しない配列で、値の重複が不可能。

Set<String> fruits = new HashSet<String>;
fruits.add("りんご");
fruits.add("ばなな");
fruits.add("ぶどう");
fruits.add("りんご"); // りんごを複数登録する

for (String f : fruits) {
  System.out.println(f);
}

-> ばなな
-> ぶどう
-> りんご

順不同で、かつ重複登録したりんごが無視されました。

使い分け

順序を意識せず、重複登録させないプログラムであれば高速なSetの方が良いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1