首页 > 编程语言 >关于Java中length、length()、size()的区别

关于Java中length、length()、size()的区别

时间:2022-10-12 11:37:21浏览次数:55  
标签:Java String list length 方法 public size

以前总是觉得自己好像会了,但是某天忽然面对这个笔试题还是会恍惚一下,混淆和答错的几率也很大,不知道有没有其他人像我一样的。

所以今天把这个问题记一下,希望印象更深刻。

 

首先区分一下length和length();

length不是方法,是属性,数组的属性;

public static void main(String[] args) {
int[] intArray = {1,2,3};
System.out.println("这个数组的长度为:" + intArray.length);
}


length()是字符串String的一个方法;

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;
}
注释中的解释是

@return the length of the sequence of characters represented by this object.

即由该对象所代表的字符序列的长度,所以归根结底最后要找的还是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属性;

另外,除了List,Set和Map也有size()方法,所以准确说size()方法是针对集合而言。

 

总结:

length——数组的属性;

length()——String的方法;

size()——集合的方法;

谨记。
————————————————
版权声明:本文为CSDN博主「张小烦一点都不烦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33236248/article/details/79884874

标签:Java,String,list,length,方法,public,size
From: https://www.cnblogs.com/xiaoming626/p/16783885.html

相关文章

  • WebAssembly01--在JavaScript中读写C/C++内存
    编译选项emccmem.cc-omem.jsmem.cc#include"util.h"intg_int=42;doubleg_double=3.1415926;EM_PORT_API(int*)get_int_ptr(){return&g_int;}EM_PO......
  • java 实现接口频次限制
    1、添加依赖<dependency><groupId>net.jodah</groupId><artifactId>expiringmap</artifactId><version>0.5.10</versio......
  • Java控制台简易计算器(两数运算)
    Java控制台简易计算器(两数运算)源代码使用while循环,Scanner方法,Switch语句实现交互效果packagecom.ge.method;importjava.util.Scanner;publicclassDemo04{......
  • java笔记
    代码规范命名规范项目名:见名知意,英文,小写包名:公司反域名;小写类名:见名知意,驼峰原则,不能有特殊符号,支持_,数字不能放开头类名如果有多个单词,每个单词大......
  • Java 做项目能用到 Map 哪些功能?这篇总结全了
    在Java的集合框架里除了Collection类族外还有Map类族,在Java中Collection类族表示存储着对象的各种集合数据结构,而Map类族则表示存储着键值对的映射表数据结构。......
  • Java基础(三)| switch、循环及Random详解
    ⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开......
  • 力扣350(java&python)-两个数组的交集 II(简单)
    题目:给你两个整数数组 nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑......
  • java求最大递增子序列算法
    求最大递增子序列:packagecom.test.algorithm;importjava.util.Arrays;/***CreatedbyAdministratoron2022/10/12.*/publicclassMaxIncrSub{/*......
  • 尚硅谷-JavaWeb Day8 Filter、Json、Ajax
    1.Filter过滤器(JavaEE的规范,也是接口)作用:拦截请求、过滤响应;(应用于权限检查、日记操作、事务管理等等)①基本使用(通过判断session域中是否包含用户信......
  • Java代码审计之实战某博客
    对某博客的代码审计在gitee上面找了一个个人博客项目,来进行实战代码审计,主要还是学习为主技术菜菜,哪里错误希望师傅们指正1、SQL注入先了解JavaWeb中的数据传输流程g......