Contents
【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となります。
コメントを残す