Java中取得数组(array),集合(Collection)和字符串(String)的长度

来源:互联网 发布:挣钱的软件 编辑:程序博客网 时间:2024/05/01 10:42

在使用Java编程时,我们经常需要取得数组,集合或者字符串的长度来作为循环或其他操作的条件。为了便于复习,在此总结一下取得他们长度的方法,以免混淆。
先给结论。
1. 数组(array)
使用.length来获取数组的长度。
2. 集合(Collection)或映射(Map)
使用.size()来获取集合或映射的大小
3. 字符序列(CharSequence,包括CharBuffer,Segment,String,StringBuffer,StringBuilder)
使用.length()来获取其长度

详解:

数组

Java中的数组是会携带自身的长度的。因此我们可以直接访问一个数组的.length成员变量来取得去长度。Java文档有如下说明:

An array is created by an array creation expression (§15.10) or an array initializer (§10.6).
An array creation expression specifies the element type, the number of levels of nested arrays, and the length of the array for at least one of the levels of nesting. The array’s length is available as a final instance variable length.
An array initializer creates an array and provides initial values for all its components.

从中我们可以得知,length变量是属于数组的一个final类型的变量。我们只能通过array.length来取得一个数组的长度而并不能改变这个值,因此在不重新创建一个数组或改变一个数组所引用的对象的情况下,无论我对此数组做出何种改变,连续取得length变量总会返回同一个值。示例如下:
对于一维数组,调用.length直接返回其长度。

int[] array = new int[]{1,2,3,4,5};System.out.println(array.length);//输出5

对于多维数组,我们每次只能得到其中某一个维度的长度。同时我们也应该注意,多维数组的每一行长度并不总是一样的。

int[][] d2matrix = new int[][]{{1, 2, 3, 4}, {1, 2, 3}, {1, 2}};System.out.println(d2matrix.length); //输出3System.out.println(d2matrix[0].length); //输出4System.out.println(d2matrix[2].length); //输出2

集合(List,Set等)

Java中每一个应用了集合借口的对象都拥有一个.size()方法来获取其大小。不像固定长度的数组,集合对象都是可变长度的,所以我们可以向集合对象中任意添加或者删除元素。调用.size()将返回一个非零值当且仅当我们已经向该集合对象中添加过元素之后。
示例如下:

List<String> listExample = new ArrayList<>();listExample.add("Java");System.out.println(listExample.size()); //输出1

某些类型的集合对象在元素是null或者元素已存在的情况下可能会拒绝向其中添加元素的操作,例如Set不允许添加重复元素。在此种情况下,向该集合对象中添加元素不会导致集合对象的大小改变。
示例如下:

Set<String> uniqueListExample = new HashSet<>();uniqueListExample.add("Java");System.out.println(uniqueListExample.size()); //输出1uniqueListExample.add("Java");System.out.println(uniqueListExample.size()); //输出1

取得多维集合对象(例如List<List<Object>>)的大小的操作和取得多维数组大小的操作类似。如下所示:

List<List<Integer>> d2CollectionExample = new ArrayList<>(); //也可以在括号中制定想要创造的ArrayList的初始大小List<Integer> row = new ArrayList<>();row.add(1);row.add(2);row.add(3);d2CollectionExample.add(row);System.out.println(d2CollectionExample.size()); //输出1System.out.println(d2CollectionExample.get(0).size()); //输出3

更加详细的Java中多维动态数组的构造和使用可以看这篇: 如何在Java中构造多维动态数组以及多维动态数组的使用
需要注意的是,Map并不属于Java集合框架(Collection Framework),但是其也拥有.size()方法,调用.size()方法返回Map中包含的键-值组合(key-value pairs)的数量。

String

字符串拥有.length()方法,该方法返回该字符串实例中字符的数量。
示例如下:

System.out.println("Java".length()); //输出4
0 0
原创粉丝点击