Java中length、length()、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() - 集合的方法;

原文地址:https://www.cnblogs.com/xxhxs-21/p/12706148.html

时间: 2024-10-08 15:06:08

Java中length、length()、size()的区别的相关文章

Java中的length字段和length()方法

本文主要讲述Java中的length字段和length()方法,有需要的朋友可以参考下,更多Java教程知识,请登陆疯狂软件教育官网. 首先,你能快速回答下面的问题吗? 如果没有IDE(集成开发环境)的自动补全功能,如何获取数组和字符串的长度? 我问了不同等级的开发者(初级和中级)同样的问题,他们很难准确而确信地给出答案.虽然IDE提供的代码自动补全功能十分方便,但也带来了“表面理解(surface understanding)”的问题.在本文中,我会解释一些和Java数组的关键概念. 上述问题

java-length 、length()、size()的区别

public static void main(String[] args) { //length .length().size()的区别 //length属性 针对数组长度 String a[]={"zhangsan","lisi","wangwu","zhaoliu"}; System.out.println(a.length); //length()方法 针对字符串 String b="zhangsanlisi

Java中Vector和ArrayList的区别

首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复. 3个具体实现类的相关区别如下: ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的数据复制到新的存储空间中.当从ArrayList的中间位置插入或者删除元素时,需要对数组

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和

java中extends与implements的区别

学了java很久了,久不用之后给同学解决一个java问题的时候,就卡在这个标题上了. 下面是java中extends与implements的区别: 1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口. extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用 2.extends是继承父类,只要那个类不是声明为f

java中抽象类与接口的区别

转自: http://blog.csdn.net/tp7309/article/details/10452445 二者的区别快忘得差不多了,从别处看到这文章感觉写的不错,正好复习复习,也给大家分享一下. 抽象类 abstract class 包含抽象方法的类,叫抽象类.而抽象的概念就是抽象出共同属性:成员变量和方法.所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法.当然抽象方法是一定要有的. 抽象类是用于单一继承的,不能实例化.而继承类一定要实现抽象方法,因为抽象

Java中this与super的区别【6】

本文原创作者:pipi-changing 本文原创出处:http://www.cnblogs.com/pipi-changing/ 本文版权归作者和博客园共有,未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接 ,否则保留追究法律责任的权利. Java中this与super的区别  this&super 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. Java关键字this只能用于方法的方法体内.当一个对象创建后, Java虚拟机(JV

java学习笔记——Java中HashMap和TreeMap的区别深入理解

本文转载自Java中HashMap和TreeMap的区别深入理解 首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.这就是我们平时说的键值对. HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的). HashMap 非线程安全 

Java中Comparable和Comparator接口区别分析

Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧.Comparable 简介Comparable 是排序接口.若一个类实现了Comparab 本文要来详细分析一下Java中Comparable和Comparator接口的区别,