目录
一.数组的基础知识
1.定义
构成一个数组的每一个数据称为数组元素
2.数组下标
各元素通过下标来区分。下标表明了数组元素在数组中的位置。在一个数组中,数组下标是用整数表示的,从0开始,依次累加1。
3.数组大小
数组中元素的个数叫做数组的大小,也叫数组的长度。
public class ArraysLength {
public static void main(String[] args){
//定义一个数组 数组类型[] 数组名称={ };
int[] ages={21,22,23};
System.out.println("该数组的大小:"+ages.length);
}
}
二.数组的使用
1.数组的初始化四步
声明数组
为数组元素分配内存
为数组元素初始化
访问数组元素
代码中是其动态和静态两种方式
public class ArraysStatic {
public static void main(String[] args){//一步一步的进行四个步骤来为动态分配(申明-分配内存-初始化-访问)
//申明一个float类型的数组
float[] scores=null;
//给数组元素分配内存,数组的长度为3
// float[] scores=new float[3];申明和初始化可以合成这一步
scores=new float[3];
//数组元素初始化
scores[0]=67.23f;
scores[1]=89.67f;
scores[2]=99.89f; //float[] scores={67.23f,89.67f,99.89f};申明初始化赋值合成一步为静态分配
//数组的访问
System.out.println("scores数组中第三个元素为:"+scores[2]);
System.out.println("scores数组为:"+scores.length);
}
}
public class ArarysTrends {//数组的静态分配
public static void main(String[] args){
float[] scores={67.23f,89.67f,99.89f};
System.out.println("scores数组中第三个元素为:"+scores[2]);//访问
System.out.println("scores数组为:"+scores.length);
}
}
2.数组的输出
public class ArarysOutputAll {
public static void main(String[] args) {
float[] scores = {67.23f, 89.67f, 99.89f};
for(int i=0;i<3;i++){
System.out.println(scores[i]);
}
}
}
3.数组的应用
1.求和
public class ArarysQiuHe {求和
public static void main(String[] args){
int[] data={1,2,3,4,5};
int sum=0;//接受运算的结果
for(int i=0;i<data.length;i++){
sum+=data[i];
}
System.out.println(sum);
}
}
2.求阶乘
public class ArraysFactorial {阶乘
public static void main(String[] args) {
int[] data = {1, 2, 3, 4, 5};
int sum = 1;//接受运算的结果
for (int i = 0; i < data.length; i++) {
sum *= data[i];
}
System.out.println(sum);
}
}
3.数组的冒泡排序
public class ArraysTwoBubbleSort {//冒泡排序
public static void main(String[] args) {
int[] data = {123, 56, 87, 34, 3, 1, 99, 85};
System.out.println("排序前的数组为:");
for (int m = 0; m < data.length; m++) {
System.out.print(data[m] + ",");
}
System.out.println(" ");
for (int i = 0; i <= data.length; i++) //控制循环次数
for (int j = 0; j < data.length - 1; j++) {//错开一个,两个比较。
if (data[j] > data[j + 1]) {
int temp;
temp = data[j];//两个值比较大小,前面的值给了temp;
data[j] = data[j + 1];//将后面的值赋值给前面的值
data[j + 1] = temp;//完成交换
}
}
System.out.println("排序后的数组为:");
for (int k = 0; k < data.length; k++) {
System.out.print(data[k] + ",");
}
}
}
4.数组的快速排序
import java.util.Arrays;
public class ArraysTwoQuickSort {//快速排序
public static void main(String[] args){
int[]data={123,56,87,34,3,1,99,85};
System.out.println("排序前的数组为:");
for(int i=0;i<data.length;i++){
System.out.print(data[i]+",");
}
Arrays.sort(data);//Arrays是一个类,是jdk给提供的。它里面的方法都可以直接调用。
System.out.println();
System.out.println("排序后的数组为:");
for(int i=0;i<data.length;i++) {
System.out.print(data[i] + ",");
}
}
}
三.二维数组
二维数组其实是一个特殊的一维数组,特殊在这个一维数组当中的每一个元素是一个一维数组。
1.定义一个二维数组
public class ArraysTwoDefine {//定义二维数组
public static void main(String[] args){
int [][] data={{1,2},{3,4,5},{11,23}};
System.out.println("输出二维数组为:"+data);
}
}
2.二维数组的输出
public class ArraysTwoOutAll {//输出二维数组
public static void main(String[] args){
int [][] data={{1,2},{3,4,5},{11,23}};
for(int i=0;i<data.length;i++){//循环二维数组
for(int j=0;j<data[i].length;j++){//循环内部数组
System.out.print(data[i][j]+" ");
}
}
}
}
四.附注
代码附注里有代码所有的思想和注意事项。
下一阶段就是面向对象的阶段。基础阶段以数组结束。