' P '

whatever I will forget

Java size(), length, length()の違い

これ全然気にしてなくて、arrayの要素を取得しようとしたら、意味不明なエラーが発生した。
あとここ最近ArrayListを何も理解せず使っていたのでsize()はarrayでも使えるんだと思っていた。

結論

  • size()Collectionクラスのobjに対して使える。例えばArrayListなど。
  • lengthはarrayの要素数を知るために使う
  • length()はStringの長さを知るために使う

参考文献

www.geeksforgeeks.org

stackoverflow.com

qiita.com

qiita.com

ダメだったコード

import java.util.Scanner;
public class Main5 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        String[] array = input.split(",");
        for(int i=0; i<array.length; i++) { //ここをarray.size()にしたり、array.length()にしてしまう
            if(i==(array.length-1)) {
                System.out.println(array[i]);
            } else {
                System.out.print(array[i]+" ");
            }
        }
    }
}

コンパイルエラー

え?ってなった。

length()の場合

Main5.java:7: error: cannot find symbol
        for(int i=0; i<array.length(); i++) {
                            ^
  symbol:   method length()
  location: variable array of type String[]

size()の場合

Main5.java:7: error: cannot find symbol
        for(int i=0; i<array.size(); i++) {
                            ^
  symbol:   method size()
  location: variable array of type String[]