【Java】sizeとlengthの違い(sizeはコレクション、lengthは配列・文字列)
Javaでは、文字列の長さや、要素の数を取得するメソッドとしてsizeとlengthのメソッドがあります。
使用について混同してしまい、間違ってしまうこともあるため備忘として記載しました。
- size():コレクションの要素数を取得
- length():文字列の長さを取得
Javaのsize()メソッドはコレクションの要素数を取得
size()メソッドを使用するとListやMap、Setなどのコレクションの要素数を取得することができます。
List<String> list= new ArrayList <>();
list.add("テスト");
list.add("テスト");
// Listの中身を出力
System.out.println(list);
// Listの要素数を出力
System.out.println(list.size());
Map<String, String> map = new HashMap<>();
map.put("番号1", "01");
map.put("番号2", "02");
map.put("番号3", "03");
// Mapの中身を出力
System.out.println(map);
// Mapの要素数を出力
System.out.println(map.size());
Set<String> set = new HashSet<>();
set.add("セット");
set.add("セット");
// Setの中身を出力
System.out.println(set);
// Setの要素数を出力
System.out.println(set.size());
//実行結果
// Listの中身を出力
[テスト, テスト]
// Listの要素数を出力
2
// Mapの中身を出力
{番号3=03, 番号1=01, 番号2=02}
// Mapの要素数を出力
3
// Setの中身を出力
[セット]
// Setの要素数を出力
1
Listの要素の数は、[]の中の数を指しており、[テスト, テスト]は2つの要素が存在しています。
Mapの要素の数は、キー値と値のペアの数を指しており、{番号3=03, 番号1=01, 番号2=02}には3ペア存在するため要素数は3となります、
Setはコレクションに値を追加する際に重複は許容しないため、今回のケースの場合は[セット]の要素数は1となります。
一方で、配列や、文字列にsize()を使用しようとするとエラーとなります。
Javaのlength()メソッドは文字列の長さを取得
length()メソッドを使用するとStringやStringBuilderの文字列の長さを取得することができます。
StringBuilder sb = new StringBuilder("TEST");
System.out.println(sb);
System.out.println(sb.length());
String str = "test";
System.out.println(str);
System.out.println(str.length());
//実行結果
TEST
4
test
4
StringやStringBuilderはいずれも、文字列の長さを指します。
length()は文字列の長さを取得するメソッドであり、いずれも4文字のため取得する値は4となります。





コメントを残す