• 【剑指offer】Java中数组、字符串的长度获取区别 length、length()、size()


    [1] 结论

      Collections家族类使用:size()
      字符串类型使用:length()
      普通数组类型使用:length

    [2] 整体理解

      ·数组的length字段用于表示数组的最大容量。最大容量是指可以存储在其中的最大元素数。此字段不考虑数组中存在的元素数量并保持不变。
      ·字符串的length()方法用于表示字符串中出现的字符数。
      ·Collections Frameworksize()方法用于查看该集合中当前存在的元素数量。Collections具有动态大小,因此size()的返回值可能会有所不同。

    [3] 细致理解

    [3.1] 数组的length

      在Java中,数组以有序的方式存储固定数量的相同类型的数据。Java 中的所有数组都有一个长度字段,用于存储为该数组的元素分配的空间。它是一个常数值,用于找出数组的最大容量。

      该字段不会为我们提供数组中存在的元素数,而是可以存储的最大元素数(无论元素是否存在)。

    [3.2] String类的length()

      String类是封装的char[]数组,String源码简化如下:

    public final class String implements Serializable, Comparable<String>, CharSequence {
    	private final char[] value;
    	public int length() {
            return this.value.length;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

      由于String类是封装的char[]数组,length() 方法返回的正是字符数组 value 的长度(length),value 本身是 private 的,因此很有必要为 String 类提供一个 public 级别的方法来供外部访问字符的长度。

    [3.3] Collections家族类的size()

      size()java.util.Collections类的一个方法。Collections类被许多不同的集合(或数据结构)使用,例如ArrayListLinkedListHashSetHashMap

      size()方法返回集合中当前存在的元素数。与数组的length属性不同,size()方法返回的值不是常数,而是根据元素的数量而变化。

      Java 中Collection Framework的所有集合都是动态分配的,因此元素的数量可能会有所不同。size() 方法用于跟踪元素的数量。

      Collections家族类如下:
    请添加图片描述

  • 相关阅读:
    (a)Spring注解式开发,注册组件的@Repository,@Service,@Controller,@Component使用及说明
    怎么用一个二维码展示多个内容?二维码汇总一个的方法
    (done) 什么是词嵌入技术?word embedding ?(这里没有介绍词嵌入算法)(没有提到嵌入矩阵如何得到)
    Windows服务器监控工具
    STAP旁瓣干扰抑制与干扰对抗仿真
    Ros noetic 机器人坐标记录运动路径和发布 实战教程(A)
    【JDK21】初体验
    【Web】log4j打JNDI专题刷题记录
    C语言学习-数组应用-三子棋(4.1)
    度加创作工具 演示
  • 原文地址:https://blog.csdn.net/qq_43592352/article/details/126840971