Java基本的程序设计结构(五)

(九)大数值
这个东东一般不太常用,所以在此就简单说下吧
首先,超过32位就要使用它,是包含在java.math包中的两个很有用的类
BigInteger和BigDecimal

需要注意的是,他们不能使用-+/*=,需要使用add(); subtract();
multiply();
divide()
mod();
compareTo();
valueOf();

(十)数组

初始化
int a[] = new int[20];
int c[];  // declare array variable
 c = new int[ 12 ]; // create array
for (int i=0; i<a.length; i++)
    a[i] = i;
for(int i : a)
    System.out.println(i);

You can declare an array variable either as
int[] a; or as
int a[];

 1."for each"循环

for (int element : a)
     System.out.println(element);
上面那个等同与下面这个
for (int i = 0; i < a.length; i++)
     System.out.println(a[i]);


2.数组初始化器和匿名数组
int smallInts[] = {1,2,3};
String[] cardinals = {"one","two","three"};
String[] ordinals = {"first","second","third"};

匿名数组
new int[]{12, 23, 23, 23}
一般好像没什么用处阿


3. 数组拷贝
System.arraycopy(from, fromIndex, to, toIndex, count);
例子:
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.arraycopy(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
   System.out.println(i + ": " + luckyNumbers[i]);

结果:
0:1001
1:1002
2:1003
3:5
4:7
5:11
6:13

4.命令行参数
 public static void main(String[] args) {

        for (int i=0; i<args.length; i++)
            System.out.println(args[i]);
   
}

5.数组排序
(Math.random() * n;  //产生随机数  0到n-1
random()产生0-1(不含1的浮点数)

 Arrays.sort(result); //排序

6.多维数组

balance = new double[NYEARS][NRATES]; 
// you cannot use the array until you new and initialize it

int[][] magicSquare =
   {
      {16, 3, 2, 13, 23},
      {5, 10, 11, 8, 3},
      {9, 6, 7, 12, 67},
      {4, 15, 14, 1, 44}
   };             // note: no “new”


7.不规则数组
也是就每行长度不一样
初始化的例子:
int [][] odds = new int [NMA+1][];
for(int i = 0; i <= NMA; n++)
{
    odds[n] =new int[n+1];
}
for(int n = 0; n < odds.length(); n++)
{
    for(int k = 0; k < odds[n].length(); k++)
    {
         odds[n][k] = lotteryOdds; 
    }
}

8.vector
类似于数组,但是不需要声明大小
可以包含不同的对象类型

初始化:
Vector vec = new Vector();

有用的一些方法:
isEmpty()
indexOf(Object arg)
contains(Object arg)

例子:
Vector vec = new Vector();
vec.addElement(“one”);
vec.addElement(“two”);
vec.addElement(“three”);
Enumeration e = vec.elements();
while (e.hasMoreElements()) {
      System.out.println(“element = “ + e.nextElement());
}
结果:
element = one
element = two
element = three

9.Collection
constructor()
Creates a collection with no elements
size()
Number of elements in the collection
boolean add()
Add a new pointer/element at the end of the collection
Returns true is the collection is modified.
iterator()
Returns an Iterator Object
hasNext() - Returns true if more elements
next() - Returns the next element
remove() - removes element returned by previous next() call.

例子
    it = strings.iterator();
    while (it.hasNext()) {
        it.next();        // get pointer to elem
        it.remove();    // remove the above elem
    }
   
    System.out.println("size:" + strings.size());