关于Java的一些简单的语法主要包括数据类型、算术运算符以及算术表达式、关系运算符和关系表示式以及逻辑运算符和逻辑表达式的使用,这些都很常见,有C/C++学习经验来说大部分都是相通的,下面就介绍java如何处理数组。
1. 对数组进行赋值,将数组元素输出
public class arraryTest
{
public static void main (String[] args)
{
int [] a;
a=new int [10 ];
int i;
for (i=0 ;i<10 ;i++)
{
System.out.println("a[" +i+"]=" +(i*i));
}
}
下面是程序结果:
a[0 ]=0
a[1 ]=1
a[2 ]=4
a[3 ]=9
a[4 ]=16
a[5 ]=25
a[6 ]=36
a[7 ]=49
a[8 ]=64
a[9 ]=81
2. 数组排序和索引
public class SearchArray
{
public static void main (String[] args)
{
int [] array = {2 , 4 , 6 , 1 , 3 , 5 , 9 , 11 , -5 , 30 , 100 };
Arrays.sort(array);
int index = Arrays.binarySearch(array, 11 );
System.out.println(Arrays.toString(array));
System.out.println("The index of 11 is " +index);
index = Arrays.binarySearch(array, 10 );
System.out.println("The index of 10 is " +index);
}
}
以下是此段程序输出如下:
[-5 , 1 , 2 , 3 , 4 , 5 , 6 , 9 , 11 , 30 , 100 ]
The index of 11 is 8
The index of 10 is -9
需要注意的是在使用java的sort()方法以及binarySearch()方法需要前提在文件开始处导入import java.util.Arrays;
toString()方法就是将对象转化为字符串,以字符串形式输出。
3. 数组长度length
public class arrary2
{
public static void main (String[] args)
{
int [] a=new int []{1 ,2 ,3 ,4 ,5 };
int [] b=new int []{2 ,3 ,4 ,5 ,6 ,7 ,8 };
for (int i=0 ;i<a.length;i++)
{
System.out.println("a[" +i+"]=" +a[i]);
}
for (int j=0 ;j<b.length;j++)
{
System.out.println("b[" +j+"]=" +b[j]);
}
System.out.println("a数组的长度是:" +a.length);
System.out.println("b数组的长度是:" +b.length);
}
}
以上程序在输出数组元素以外还能使用length方法知道数组的长度,如本例中a数组的长度是:5 b数组的长度是:7
下面是著名的斐波那契数列java程序(用数组实现)
public class arraryTest4
{
public static void main (String[] args)
{
int [] f=new int [100 ];
f[0 ]=0 ;
f[1 ]=1 ;
for (int i=2 ;i<f.length;i++)
{
f[i]=f[i-1 ]+f[i-2 ];
System.out.println("f[" +i+"]=" +f[i]);
}
}
}
结束输出如下(给出前20项)
f[2 ]=1
f[3 ]=2
f[4 ]=3
f[5 ]=5
f[6 ]=8
f[7 ]=13
f[8 ]=21
f[9 ]=34
f[10 ]=55
f[11 ]=89
f[12 ]=144
f[13 ]=233
f[14 ]=377
f[15 ]=610
f[16 ]=987
f[17 ]=1597
f[18 ]=2584
f[19 ]=4181
f[20 ]=6765
...
4 java处理二维数组
在实际情况中很多时候一维数组不满足开发人员的使用需求,可能需要用到二维或者更高维数组。先看下面这个例子:
public class arraryTest5 {
public static void main (String[] args) {
char [][] a;
a = new char [4 ][10 ];
a[0 ] = new char [10 ];
a[1 ] = new char [10 ];
a[2 ] = new char [10 ];
a[3 ] = new char [10 ];
a[0 ][0 ] = 65 ;
a[1 ][0 ] = 67 ;
a[2 ][0 ] = 69 ;
a[3 ][0 ] = 71 ;
for (int i = 0 ; i < a.length; i++) {
for (int j = 1 ; j < a[i].length; j++) {
a[i][j] = (char ) (a[i][j - 1 ] + 1 );
System.out.print(a[i][j - 1 ]);
}
System.out.println();
}
}
}
输出结果如下:
ABCDEFGHI
CDEFGHIJK
EFGHIJKLM
GHIJKLMNO
创建一个二维数组表示行和列,给每一行的第一个元素赋初值,之后用for循环给整个数组进行赋值操作。最后输出得到以上字符输出。
在这里说一下,理解数组(特别是高维数组以二维数组为例)在内存中的存放有利于对数组的操作,在C语言里面使用指针进行多维数组处理也比较灵活(虽然java里面没有指针一说),在这里数组是先进行行存储再进行列存储的,并且地址连续。高维数组的使用最主要的是将实际情况中的功能分析后映射成数组模型,灵活使用。