一维数组:
一、声明:
1. 数据类型[] 数组名;
2.数据类型 数组名[];
二、创建:
1.先声明后创建:数组名=new 数据类型[数组长度];
2.声明的同时创建数组:数据类型[] 数组名=new 数据类型[数组长度];
注意①:数组创建时必须指定数组长度。
②[]可以写在数据类型后面、也可写在数组名后面。
③数组在内存中分配的是一个连续的内存空间。
三、初始化:
例:int[] arr={1,2,3,8};
数组长度:arr.length
a.
package com;
public class Hello {
public static void main(String[] args) {
//声明一个整型数组
int[] intArray;
//声明一个字符串类型的数组
String strArray[];
//创建数组
intArray=new int[5];
strArray=new String[10];
//声明数组的同时创建
float[] floatArray=new float[4];
//初始化数组
char[] ch= {'a','b','c','d'};
System.out.println("intArray数组的第2个元素是:"+intArray[1]);
System.out.println("strArray数组的第5个元素是:"+intArray[4]);
System.out.println("floatArray数组的最后一个元素是:"+floatArray[floatArray.length-1]);
System.out.println("ch数组的长度是:"+ch.length);
//循环为整型数组赋值并输出
System.out.println("整型数组intArray的元素为:");
for(int i=0;i<5;i++) {
intArray[i]=i+1;
System.out.print(intArray[i]+" ");
}
}
}
b.
package com;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
//求整型数组的累加和
//定义整型数组
int[] a=new int[5];
//从键盘接受数组为数组元素赋值
Scanner sc=new Scanner(System.in);
for (int i = 0; i < a.length; i++) {
System.out.println("请输入第"+(i+1)+"个元素:");
a[i]=sc.nextInt();
}
System.out.println("数组内容是:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
};
//求数组元素的累加和
int sum=0;
for(int i=0;i<a.length;i++) {
sum=sum+a[i];
}
System.out.println();
System.out.println("数组元素的累加和是:"+sum);
}
}
c.求数组元素的最大值:
package com;
public class Hello {
public static void main(String[] args) {
//求数组元素的最大值
int[] a= {43,92,80,12,34};
int max=a[0];
for (int i = 1; i < a.length; i++) {
if (max<a[i]) {
max=a[i];
}
}
System.out.println("最大值是:"+max);
}
}
四、增强型for循环:
又叫foreach循环。
如:
int[] arr={1,2,3,4,5};
for(int n:arr) //数组是什么数据类型,就定义一个数据类型的变量
System.out.println(n);
package com;
public class Hello {
public static void main(String[] args) {
int[] a= {1,2,3,4,5};
System.out.println("使用增强新for循环输出数组内容:");
for(int n:a) {
System.out.print(n+" ");
}
}
}
冒泡排序:
package com;
public class Hello {
public static void main(String[] args) {
//冒泡排序
int[] a= {34,53,12,32,56,17};
System.out.println("排序前的数组元素是:");
for(int n:a) {
System.out.print(n+" ");
}
System.out.println(" ");
int temp;
//外重循环控制比较趟数,n个元素会比较n-1趟
for (int i = 0; i < a.length-1; i++) {
/* 内重循环控制每趟排序,第一趟排序,每个元素两两比较,共比较5次。
* 每趟排序都会比上一趟少比较一次 */
for (int j = 0; j < a.length-i-1; j++) {
if(a[j]>a[j+1]) {
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("从小到大排序后的元素是");
for(int n:a) {
System.out.print(n+" ");
}
}
}
二维数组:
package com;
public class Hello {
public static void main(String[] args) {
//二维数组的声明
//声明int类型的二维数组
int[][] intArray;
//声明float类型数组的二维数组
float[][] floatArray;
//声明double类型的数组
double[][] doubleArray;
//创建一个三行三列的int类型的二维数组
intArray=new int[3][3];
System.out.println("intArray数组的第3行第2列的元素是:"+intArray[2][1]); //数组的默认值是0
//为第2行第3列的元素赋值
intArray[1][2]=9;
System.out.println("intArray数组的第2行第3列的元素是:"+intArray[1][2]);
//声明数组的同时创建
char[][] ch=new char[3][5];
//创建float类型的数组时,只指定行数
floatArray=new float[3][];
//每行相当于一个一维数组,需要创建
floatArray[0]=new float[3]; //第一行有3列
floatArray[0]=new float[4]; //第一行有4列
floatArray[0]=new float[5]; //第一行有5列
System.out.println(floatArray[0][0]);
//二维数组的初始化
int[][] num= {{1,2,3},{4,5,6},{7,8,9}};
System.out.println("num数组第1行第2列的元素是:"+num[0][1]);
System.out.println("num数组的行数是:"+num.length);
System.out.println("num数组的列数是:"+num[0].length);
int[][] num1= {{78,98},{65,75,63},{98}};
System.out.println("num1数组的第1行的列数是:"+num1[0].length);
//循环输出二维数组的内容
for(int i=0;i<num1.length;i++) {
for(int j=0;j<num1[i].length;j++) {
System.out.print(num1[i][j]+" ");
}
System.out.println();
}
}
}
创建二维数组时,列数可以省略,但行数不可以省略!
API:
排序:Arrays.sort(arr)
二分查找:Arrays.binary