Java中lengthlength()size()的区别

Posted 小小赫下士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中lengthlength()size()的区别相关的知识,希望对你有一定的参考价值。

首先区分下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() - 集合的方法;

以上是关于Java中lengthlength()size()的区别的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer知识点Java中数组字符串的长度获取区别 lengthlength()size()

剑指offerJava中数组字符串的长度获取区别 lengthlength()size()

C++里面,为啥重载前++时不返回引用就不能连用?

java中length,length(),size()区别

java中length,length(),size()区别

java中length属性length()方法size()方法