目录
4.1数组的概述
数组是具有相同数据类型的一组数据的集合。
4.2一维数组
指的是一组相同数据类型的线性集合。
4.2.1 创建并使用一维数组
1、创建一维数组
int arr[];//声明int型数组,数组的每个元素都是int型数值
double arr[];//声明double型数组,数组的每个元素都是double型数值
2、分配数组的内存空间
数组名字 = new 数组元素类型 [数组元素的个数];
arr = new int [5];//数组长度为五
3、初始化一维数组
int a [] = {1,2,3};
int b [] = new int[] {4,5,6};
int c [] = new int[3];
c[0] = 7;//给第一个值赋值
c[1] = 8;
c[2] = 9;
4、获取数组长度
package javaProject001;
public class wwwwww {
public static void main(String[] args) {
char a[] = {'A','B','c','D'};
System.out.println("数组a长度为" + a.length);
char b[] = a;
System.out.println("数组b的长度为" + b.length);
}
}
运行结果如下:
5、使用一维数组
package javaProject001;
public class llllllp {
public static void main(String[] args) {
int booktime = 4;
float practice = 2.5f;
System.out.println("我每天花费"+ booktime+"小时看书"+practice+"小时上机练习。");
}
}
运行结果如下:
package shuzutask1;
public class qazxswedc {
public static void main(String[] args) {
int day[] = new int[] {31,28,31,30,31,30,31,31,30,31,30,31};
for (int i=0;i<12;i++)
System.out.println((i+1)+"月有"+ day[i] +"天");
}
}
4.3 二维数组
4.31 创建并使用二维数组
1、二维数组可以看做是特殊的一维数组,因此有两种声明方式:
int a [] [];
a = new int [2] [34];//直接分配行列
int b [] [];
int b = new int [2] [];//先分配行,不分配列
b[0] = new int [2];//给第一行分配列
b[1] = new int [2];//给第二列分配列
注意:创建二维数组的时候,只可以声明行的长度,而不声明列的长度。
2、初始化二维数组
package boketask;
public class eg1 {
public static void main(String[] args) {
int taderr1 [] [] = {{1,2,5},{5,7,9}};
int tader2 [] [] = new int [] [] {{65,55,12},{97,65,312}};
int tader3 [] [] = new int [2][3];//先给数组分配内存空间
tader3[0] = new int [] {78,88,66};//给第一行分配一个一维数组
tader3[1][0] = 64;//第二行第一列赋值
tader3[1][1] = 21;//第二行第二列赋值
tader3[1][2] = 19;//第二行第三列赋值
}
}
3、使用二维数组
package shuzutask1;
public class asdfdfdfdf {
public static void main(String[] args) {
char arr[][] = new char[4][];//创建一个四行的二维数组
arr[0]= new char[] {'春','眠','不','觉','晓'};//给数组赋值
arr[1]= new char[] {'处','处','闻','啼','鸟'};
arr[2]= new char[] {'夜','来','风','雨','声'};
arr[3]= new char[] {'花','落','知','多','少'};
for (int i = 0;i<arr.length;i++) {
for (int j = 0;j<5;j++) {
System.out.print(arr[i][j]);}
if(i%2==0) {
System.out.println(",");}
else
{System.out.println("。");
}
}
System.out.println("---------------------------------------");
for (int j=0;j<5;j++) {
for(int i=3;i>=0;i--) {
System.out.print(arr[i][j]);
}
System.out.println();
}
System.out.println("。,。,");
}}
运行结果如下:
4、遍历数组:
package shuzutask1;
import java.util.Arrays;
public class mnbnbnbnbnb {
public static void main(String[] args) {
int arr[] =new int[] {45,12,2,77,31,91,10};
Arrays.fill(arr, 1,4,100);
for (int i=0;i<arr.length;i++) {
System.out.println("第"+i+"个元素是:"+arr[i]);}
}
}
5、复制数组
package boketask;
import java.util.Arrays;
public class boletask2 {
public static void main(String[] args) {
int arr[] = new int[] {23,43,54,32,564};//定义数组
int newarr[] = Arrays.copyOfRange(arr,0,3);//复制数组
for(int i = 0;i<newarr.length;i++) {//循环遍历赋值后的数组
System.out.println(newarr[i]);//将新的数组中的元素输出
}
}
}
运行结果如下:
4.5数组的排序
4.51.冒泡排序
package javaProject001;
public class BubbleSort {
public void sort(int[] array) {
for(int i = 1;i<array.length;i++)
{for (int j=0;j<array.length-i;j++) {
if (array[j]>array[j+1]) {
int temp = array[j];
array[j]=array[j+1];
array[j+1]=temp;}
}
}
showArray(array);}
public void showArray(int[] array) {
System.out.println("冒泡排序结果:");
for (int i :array) {
System.out.println(i+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] array = {63,3,12,45,54,87,21};
BubbleSort sorter = new BubbleSort();
sorter.sort(array);
}
}
运行结果如下:
4.52 排序选择
package javaProject001;
public class SelectSort {
public void sort(int[] array) {
int index;
for(int i=1;i<array.length;i++) {
index =0;
for(int j=1;j<=array.length - i;j++) {
if (array[j] > array[index]) {
index = j;}}
int temp = array[array.length-i];
array[array.length-i] = array[index];
array[index] = temp;}
showArray(array);
}
public void showArray(int[] array) {
System.out.println("选择排序结果为:");
for (int i : array) {
System.out.println(i + " ");
}
System.out.println();
}
public static void main(String[] args) {
int[] array = {23,1,55,99,56,45,32};
SelectSort sorter = new SelectSort();
sorter.sort(array);
}
}
运行结果如下:
4.53 Array.Sort()方法
package boketask;
import java.util.Arrays;
public class boketask3 {
public static void main(String[] args) {
int arr[] = new int [] {23,34,454,56};
Arrays.sort(arr);//将数组进行排序
System.out.println("排序后结果为:");
for (int i = 0; i<arr.length;i++) {
System.out.println(arr[i]+"");
}
}
}
运行结果如下: