在Java中,size
和 length
是两个不同的属性,分别用于不同的数据结构。以下是它们的详细区别和适用场景:
1.length
-
适用对象:
-
数组(Array):数组是一个固定长度的线性数据结构,其长度是固定的,不能动态改变。
-
字符串(String):字符串是一个字符数组,也有 length 属性。
-
-
使用方式:
-
对于数组,使用
array.length
来获取数组的长度。 -
对于字符串,使用
string.length()
方法来获取字符串的长度(注意是方法,不是属性)。
-
-
示例
int[] array = {1, 2, 3, 4, 5};
System.out.println(array.length); // 输出 5String str = "Hello";
System.out.println(str.length()); // 输出 5
2. size
-
适用对象:
-
单列集合(Collection):如
ArrayList
、LinkedList
、HashSet
、TreeSet
等。 -
双列集合(Map):如
HashMap
、TreeMap
等。
-
-
使用方式:
-
对于单列集合和双列集合,使用
collection.size()
或map.size()
方法来获取其大小。
-
-
示例:
ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(list.size()); // 输出 3HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
System.out.println(map.size()); // 输出 2
总结
-
length
:-
用于数组和字符串。
-
数组的
length
是属性,直接访问。 -
字符串的
length
是方法,需要调用string.length()
。
-
-
size
:-
用于单列集合(如
ArrayList
、HashSet
等)和双列集合Map。 -
始终是方法,需要调用
collection.size()
或map.size()
。
-