Java 长度和容量的区别

Java 长度和容量的区别

在Java中,长度(length)和容量(capacity)这两个术语与数组、字符串(String)和ArrayList等集合中元素的存储有关。长度指的是给定集合中当前存储的元素数量,而容量则指的是集合可以容纳的最大元素数量。在本文中,我们将探讨Java中长度和容量的区别。

Java中的长度 vs 容量

长度

要获取数组的长度,我们使用其”length”属性,而要获取字符串的长度,则使用其内置的”length()”方法。在数组的情况下,”length”属性将计算存储在其中的元素数量,在字符串的情况下,”length()”方法计算其包含的字符数量。

示例1

以下示例演示了使用数组的”length”属性。

public class Example1 {
   public static void main(String[] args) {
      int[] aray = new int[10]; // declaring array of size 10
      // initializing the array
      aray[0] = 1;
      aray[1] = 2;
      aray[2] = 3;
      // printing the length of array
      System.out.println("Length of the given array: " + aray.length);
   }
}

输出

Length of the given array: 10

在上面的代码中,我们声明了一个大小为10的数组,这意味着它最多可以存储10个元素。由于数组的大小是固定的,在Java中,数组的长度和容量始终相等。 例如2: 在下面的示例中,我们将使用length()方法来检查字符串的长度。

public class Example2 {
   public static void main(String[] args) {
      // declaration and initialization of strings
      String st1 = "Tutorialspoint";
      String st2 = "Tutorix";
      // printing the length of strings
      System.out.println("Length of the String 1: " + st1.length());
      System.out.println("Length of the given String 2: " + st2.length());
   }
}

输出

Length of the String 1: 14
Length of the given String 2: 7

容量

由于字符串是不可变的,Java提供了StringBuffer和StringBuilder类来修改字符串。要获取这些类的容量,我们使用内置方法称为’capacity()’。默认情况下,它们的容量可以容纳16个字符。因此,当我们将任何字符串存储在这些类中时,结果将比实际字符串长度多16个字符。

示例2

以下示例演示了’capacity()’的使用。

public class Example3 {
   public static void main(String[] args) {
      // initializing the string
      String st1 = "Tutorialspoint";
      // passing the string to StringBuilder object
      StringBuilder st2 = new StringBuilder(st1);
      // printing the length and capacity
      System.out.println("Length of the st1: " + st1.length());
      System.out.println("Length of the st2: " + st2.length());
      System.out.println("Capacity of st2: " + st2.capacity());
   }
}

输出

Length of the st1: 14
Length of the st2: 14
Capacity of st2: 30

长度与容量的区别

通过以上讨论,我们可以得出以下长度和容量的区别:

Length() Capacity()
它是String类的方法。 它是StringBuilder和StringBuffer类的方法。
一个空字符串的初始长度为0。 StringBuilder和StringBuffer类的初始容量都为16。
它检查字符串中字符的总数。 它检查一个集合可以容纳的最大元素数量。
在复制字符串时,考虑字符串的长度。 复制时不考虑字符串的长度。

结论

Java中存在长度(Length)和容量(capacity)之间的细微差别,我们可以说它们互相补充。虽然它们都与元素的存储有关,长度是字符或元素的总数,而容量(capacity)则表示能够容纳最大数量的元素的能力。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程