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

Posted 征途黯然.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer知识点Java中数组字符串的长度获取区别 lengthlength()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;
    

  由于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家族类如下:

以上是关于剑指offer知识点Java中数组字符串的长度获取区别 lengthlength()size()的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer50:数组中重复的数字(Java)

Java 剑指offer(39) 数组中出现次数超过一半的数字

剑指Offer面试题29(java版):数组中出现次数超过一半的数字

剑指offer--41.扑克牌顺子

剑指 Offer 精选剑指 Offer II 005. 单词长度的最大乘积

剑指Offer:替换空格