string 数组 java_如何在Java中获取数组,集合或String的大小?

简略:

对于数组:使用.length。

对于Collection(或Map):使用.size()。

对于一个CharSequence(其包括CharBuffer,Segment,String,StringBuffer,和StringBuilder):使用.length()。

数组

可以使用数组上的.length属性来访问它。尽管数组是动态创建的Object,但length属性的任务是由Java语言规范§10.3定义的:

数组由数组创建表达式(第15.10节)或数组初始值设定项(第10.6节)创建。

数组创建表达式指定至少一个嵌套级别的元素类型,嵌套数组的级别数和数组的长度。数组的长度可用作最终实例变量length。

数组初始值设定项创建一个数组并为其所有组件提供初始值。

由于数组的长度在没有创建新数组实例的情况下.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等)

对于实现Collection接口的每个对象,它们都有一个调用的方法size(),用于访问集合的整体大小。

与数组不同,集合的长度不固定,并且可以随时添加或删除元素。size()当且仅当列表本身添加了任何内容时,调用才会产生非零结果。

例:

List shoppingList = new ArrayList<>();

shoppingList.add("Eggs");

System.out.println(shoppingList.size()); // prints 1

某些集合可能会拒绝添加元素,无论是因为它null还是重复(在a的情况下Set)。在这种情况下,重复添加集合不会导致大小增加。

例:

Set uniqueShoppingList = new HashSet<>();

uniqueShoppingList.add("Milk");

System.out.println(uniqueShoppingList.size()); // prints 1

uniqueShoppingList.add("Milk");

System.out.println(uniqueShoppingList.size()); // prints 1

访问a List>* 的大小是以与锯齿状数组类似的方式完成的:

List> oddCollection = new ArrayList<>();

List numbers = new ArrayList() {{

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

*:  Collection没有get在其界面中定义的方法。

另外,a Map不是a Collection,但它也有一个size()定义的方法。这只是返回包含在中的键值对的数量Map。

String

A String有一个定义的方法length()。它的作用是打印该实例中存在的字符数String。

例:

System.out.println("alphabet".length()); // prints 8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值