2008-07-25

Java中的数组

声明方式:
int[] arrayname;
String[] strs = new String[3];
...

初始化:
int[] arrayname = {88,22,33};
String[] strs = {"test1","ttttt","sdfi"};
对于多维数组:
int[][] twodem = {{1,2,3},{4,5,6}};
或者
int[][] twodem2 = new int [3][3];

但是在Java中多维数组的机制同C/C++有所不同,java不直接支持多维数组,而是用一维数组保存数组的引用来实现的。

在main方法中,其参数String[] args是一个String 对象数组。基本上和C中差不多。

另外,我们还可以构建可变长参数列表。
比如

public double average (int ... list)
{
  double result = 0.0;
  if ( list.length!=0)
  {
    int sum = 0;
    for(int num : list)
      sum+= num;
    result = (double)sum / list.length;
  }

  return result;
}

如果声明多个参数时,可变长参数列表必须放在最后一个,并且一个方法不允许两个可变长参数列表。

除了标准的数组之外,java中也有类似C++中vector类型的ArrayList类。
ArrayList定义在java.util包中。它是一个集合类。
声明:
ArrayList test = new ArrayList();
ArrayList test2 = new ArrayList();
之所以能这样是因为ArrayList是一种泛型。一般最好声明ArrayList的元素类型,否则需要麻烦的类型转换。ArrayList的一些方法:

方法名说明
ArrayList()
构造方法
boolean add(Object obj)
将obj对象插入尾部
void add(int index,Object obj)
将obj对象插入index处
void clear()
清空本列表
Object remove(int index)
删除index处的对象并返回该对象
Object get (int index)
返回index处的对象
int indexOf(Object obj)
返回obj第一次出现的索引位置
boolean contains(Object obj)
是否含有obj对象
boolean isEmpty()
是否为空
int size()
返回列表元素数量

没有评论: