首先区分下length和length():
length不是方法是属性,数组的属性;
1 public static void main(String[] args){ 2 int[] intArray = {4,5,6}; 3 System.out.println("这个数组的长度是:"+intArray.length); 4 }
length()是字符串String的一个方法:
1 public static void main(String[] args){ 2 String string = "好好学习,天天向上"; 3 System.out.println("这个字符串的长度是:"+string.length()); 4 }
到length()方法中看一下底层实现:
1 private final char value[]; 2 3 public int length(){ 4 return value.length; 5 }
所以到最后要找的还是length这个底层的属性。
size()方法是List集合的一个方法:
1 public static void main(String[] args) { 2 List<String> testList = new ArrayList<String>(); 3 testList .add("zhangsan"); 4 testList .add("lisi"); 5 testList .add("wangwu"); 6 System.out.println("这个list的长度是:" + list.size()); 7 }
List是没有length()方法的;
ArrayList的一段源码:
1 private final E[] a; 2 3 ArrayList(E[] array) { 4 if (array==null) 5 throw new NullPointerException(); 6 a = array; 7 } 8 9 public int size() { 10 return a.length; 11 }
由此可以看出List的底层实现其实就是数组,size()方法最后要找的还是数组的length属性;
准确来说size()方法是针对集合而言,除了List,还有Map和Set也有size()方法。
记:
length - 数组的属性;
length() - String的方法;
size() - 集合的方法;
原文地址:https://www.cnblogs.com/xxhxs-21/p/12706148.html
时间: 2024-10-08 15:06:08