数组
Java数组存储固定大小的同类型元素
数组利用索引(内存地址)来记录每个元素在数组中的位置,大多数编程语言中,索引是从0算起。
数组是线性表的实现方式之一,数组中的元素在内存中连续存储,且每个元素占用相同的内存。
声明、创建、初始化
声明:
dataType[] arrayRefVar;
dataType arrayRefVar[];
创建:
arrayRefVar=new dataType[arraySize];
public class example1{
public static void main(String[] arg) {
int size=10;
double[] myList=new double[size];
//声明创建一起完成
myList[0]=5.6;
myList[1]=4.5;
myList[2]=3.3;
myList[3]=13.2;
myList[4]=4.0;
myList[5]=34.33;
myList[6]=34.0;
myList[7]=45.45;
myList[8]=99.993;
myList[9]=11123;
double total=0;
for(int i=0;i<size;i++) {
total+=myList[i];
}
System.out.println("总和为:"+total);
}
}
数组的处理
public class example1 {
public static void main(String[] arg) {
double[] myList= {1.9,2.9,3.4,3.5};
//打印所有数组元素
for(int i=0;i<myList.length;i++) {
System.out.println(myList[i]+" ");
}
//计算数组数据总和
double total=0;
for(int i=0;i<myList.length;i++) {
total+=myList[i];
}
System.out.println("数组总和:"+total);
//查找最大元素
double max=myList[0];
for(int i=0;i<myList.length;i++) {
if(myList[i]>max) {
max=myList[i];
}
}
System.out.println("数组最大元素为"+max);
}
}
1、for-each循环
加强循环;可以在不使用下标的情况下遍历数组
//语法格式
for(type element:array){
System.out.println(element);
}
实例:
public class example1 {
public static void main(String[] arg) {
double[] myList= {1.9,2.9,3.4,3.5};
for(double element:myList) {
System.out.println(element);
}
}
}
2、数组作为函数的参数
public class example1 {
public static void main(String[] arg) {
double[] myList= {1.9,2.9,3.4,3.5};
printArray(myList);
printArray(new double[]{1.9,2.9,3.4,3.5});
}
public static void printArray(double[] array) {
for(int i=0;i<array.length;i++) {
System.out.println(array[i]+"");
}
}
}
3、数组作为函数的返回值
一维数组的逆置
public class example1 {
public static void main(String[] arg) {
double[] myList= {1.9,2.9,3.4,3.5};
reverse(myList);
}
public static double[] reverse(double[] list) {
double[] result=new double[list.length];
for(int i = 0,j = result.length - 1; i < list.length; i++, j--){
result[j] = list[i];
}
for(int i=0;i<result.length;i++) {
System.out.println(result[i]+" ");
}
return result;
}
}
4、多维数组
可以看成是数组的数组
例如:二维数组就是一个特殊的一维数组,其中每个元素都是一个一维数组
String str[][]=new String[3][4]
二维数组的动态初始化
1、直接为每一维分配空间
type[][] typeName=new type[typeLength1][typeLength2];
type 可以为基本数据类型和复合数据类型,
int a[][]=new int[2][3];
2、从最高维开始,分别为每一维分配空间,
public class example1 {
public static void main(String[] arg) {
String s[][]=new String[2][];
s[0]=new String[2];
s[1]=new String[3];
s[0][0] = new String("Good");
s[0][1] = new String("Luck");
s[1][0] = new String("to");
s[1][1] = new String("you");
s[1][2] = new String("!");
}
}
Arrays类
java.util.Arrays类可以方便的操作数组,提供的方法都是静态的。