如何在Java中获取数组,集合或字符串的大小?
我可以通过哪些不同的方式访问数组、集合(、等)和对象的长度?为什么它不同?List
Set
String
我可以通过哪些不同的方式访问数组、集合(、等)和对象的长度?为什么它不同?List
Set
String
对于数组:使用 .length
。
对于 (or):请使用 .size()
。Collection
Map
对于 a(包括 、、、和):请使用 .length()。
。CharSequence
CharBuffer
Segment
String
StringBuffer
StringBuilder
可以在数组上使用 .length
属性来访问它。尽管数组是动态创建的,但该属性的授权由 Java 语言规范 §10.3 定义:Object
length
数组由数组创建表达式 (§15.10) 或数组初始值设定项 (§10.6) 创建。
数组创建表达式指定元素类型、嵌套数组的级别数以及至少一个嵌套级别的数组长度。数组的长度可用作最终实例变量
长度
。数组初始值设定项创建一个数组,并为其所有组件提供初始值。
由于数组的长度在未创建新的数组实例的情况下无法更改,因此无论对数组实例执行什么操作,重复访问 都不会更改值(除非将其引用替换为大小不同的数组)。.length
例如,要获取声明的一维数组的长度,可以这样写:
double[] testScores = new double[] {100.0, 97.3, 88.3, 79.9};
System.out.println(testScores.length); // prints 4
要获得 n 维数组中的长度,需要记住,它们一次访问数组的一个维度。
下面是一个二维数组的示例。
int[][] matrix
= new int[][] {
{1, 2, 3, 4},
{-1, 2, -3, 4},
{1, -2, 3, -4}
};
System.out.println(matrix.length); // prints 3 (row length or the length of the array that holds the other arrays)
System.out.println(matrix[0].length); // prints 4 (column length or the length of the array at the index 0)
这很重要,特别是在交错数组的情况下;列或行可能并不总是一直排成一行。
Set
List
对于实现接口的每个对象,它们将具有一个名为 size()
的方法,用于访问集合的总体大小。Collection
与数组不同,集合的长度不是固定的,并且可以随时添加或删除元素。当且仅当列表本身添加了任何内容时,调用 将产生非零结果。size()
例:
List<String> shoppingList = new ArrayList<>();
shoppingList.add("Eggs");
System.out.println(shoppingList.size()); // prints 1
某些集合可能会拒绝添加元素,因为它是 ,或者它是重复的(在 a 的情况下)。在这种情况下,重复添加到集合中不会导致大小增加。null
Set
例:
Set<String> uniqueShoppingList = new HashSet<>();
uniqueShoppingList.add("Milk");
System.out.println(uniqueShoppingList.size()); // prints 1
uniqueShoppingList.add("Milk");
System.out.println(uniqueShoppingList.size()); // prints 1
访问 * 的大小与锯齿状数组类似:List<List<Object>>
List<List<Integer>> oddCollection = new ArrayList<>();
List<Integer> numbers = new ArrayList<Integer>() {{
add(1);
add(2);
add(3);
}};
oddCollection.add(numbers);
System.out.println(oddCollection.size()); // prints 1
System.out.println(oddCollection.get(0).size()); // prints 3
*:集合
在其接口中没有定义 get
方法。
顺便说一句,a 不是 ,但它也定义了 size()
方法。这仅返回 中包含的键值对的数量。Map
Collection
Map
String
A 定义了一个方法 length()。
它的作用是打印 该实例中存在的字符数。String
String
例:
System.out.println("alphabet".length()); // prints 8