use*_*084 -1 java collections arraylist
import java.util.*;
class Ball{
public static void main(String args[])
{
ArrayList al = new ArrayList();
al.add(new Integer(1));
al.add(new Integer(2));
al.add(new Integer(3));
Object a[]= al.toArray();
for (int i=0; i<a.length; i++)
{
System.out.println("Contents are :"+ a[i]);
}
}}
Run Code Online (Sandbox Code Playgroud)
所以我创建了一个ArrayList并添加了几个元素.然后用toArray方法得到对象数组a.但是,如果我使用i<a.length()而不是i<a.length,我会收到错误.我不明白的是,如果length()是一种方法,那是length什么?
其次为什么我不能使用for循环输出ArrayList元素?
for (int i=0; i<al.length(); i++)
{
System.out.println("Contents are :"+ al[i]);
}
Run Code Online (Sandbox Code Playgroud)
(在这里使用al.length()以及al [i]给出错误)
首先,数组有一个length字段final和int类型.数组没有length方法.
这在Java语言规范中有说明.第10章数组.(强调我的):
10.2.数组变量
创建数组对象后,其长度永远不会更改.要使数组变量引用不同长度的数组,必须为该变量分配对不同数组的引用.
10.3.数组创建
数组创建表达式指定至少一个嵌套级别的元素类型,嵌套数组的级别数和数组的长度.数组的长度可用作
final实例变量length.
要访问数组的元素,请使用[index]:
System.out.println(a[index]);
Run Code Online (Sandbox Code Playgroud)
第二,ArrayList没有length方法,但是size.
要访问ArrayListby by 的元素,请使用以下get方法:
System.out.println(al.get(index));
Run Code Online (Sandbox Code Playgroud)
请注意,a ArrayList 不是数组,它是一个使用数组作为容器来保存它将存储的元素的类,如果它需要包含更多元素,它将添加,删除,搜索和创建新数组.
要遍历数组的所有元素或List(由实现的接口ArrayList),最好使用增强for循环:
for (Object o : a) {
System.out.println(o);
}
for (Object o : al) {
System.out.println(o);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |