JAvaにおけるlength,length()sizeの違い

7463 ワード

まずlengthとlength()を区別します.
lengthは方法ではなく、属性であり、配列の属性である.
public static void main(String[] args) {
	int[] intArray = {1,2,3};
	System.out.println("        :" + intArray.length);
}

length()は文字列Stringの1つの方法である.
public static void main(String[] args) {
	String str = "HelloWorld";
	System.out.println("         :" + str.length());
}

length()メソッドに入って実装を見てみましょう
private final char value[];
 
public int length() {
        return value.length;
    }

size()メソッドは、List集合のメソッドである.
public static void main(String[] args) {
	List<String> list = new ArrayList<String>();
	list.add("a");
	list.add("b");
	list.add("c");
	System.out.println("  list    :" + list.size());
}

Listのメソッドではlength()メソッドはありません.
ArrayListのソースコードも見て
private final E[] a;
 
ArrayList(E[] array) {
       if (array==null)
             throw new NullPointerException();
       a = array;
}
 
public int size() {
       return a.length;
}

この段落からlistの下位実装は実は配列であり、size()メソッドが最後に探しているのは配列のlength属性であることがわかる.
また,リストに加えて,SetとMapにもsize()メソッドがあるので,正確にはsize()メソッドは集合に対してである.
まとめ:
length——配列の属性;
length()——Stringの方法;
size()——集合の方法;
謹んで記す.
————————————————著作権声明:本文はCSDNブロガーの「張小煩は少しも煩わしくない」オリジナル文章であり、CC 4.0 BY-SA著作権協定に従い、原文の出典リンクと本声明を転載してください.テキストリンク:https://blog.csdn.net/qq_33236248/article/details/79884874