JavaSE第三章学习笔记(数组)

本文详细介绍了JavaSE中的数组基础知识,包括数组的声明、创建、访问和迭代。此外,还探讨了冒泡排序和选择排序两种经典排序算法的实现,并展示了如何对二维数组进行操作和迭代。内容涵盖了数组的基本概念、使用方法以及排序优化策略。
摘要由CSDN通过智能技术生成

JavaSE第三章

(数组)

1.数组基本概念及作用

(存储一组数据类型相同的数据 空间连续 长度一旦给定不可变)

1.数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,

也可以存储引用数据类型

2.数组的声明的两种方式:

• 数据类型 [] 数组名字 例如:int [] a; //推荐

• 数据类型 数组的名字 [] 例如: int a []

//int指数组中可以存储的数据类型为int 数组是引用数据类型

2.数组的创建

数组创建的三种方式:

int[] a = new int[10]; //动态创建数组,默认赋值0

System.out.println(Arrays.toString(a))//Arrays是操作数组的方法

int[] a = new int[]{1, 2, 3, 4, 5}; //静态创建数组

int[] a = {1, 2, 3, 4, 5};//数量固定的 可直接赋值 如一周七天

数组的索引(index):最小为0 最大为长度-1(.length-1) 即第几个位置

a[0]//数组a的第1个位置

3.数组的访问与迭代(遍历)

数组迭代的两种方式:

第一种:for循环

int [] a = new int []{1,2,3,4,5,6,7};

for(int i =0;i<a.length;i++){

System.out.println(a[i]);

}

第二种:增强for循环

int [] b1 = new int []{1,2,3,4,5,6,7};

for(数组元素的类型 临时变量名字 :要遍历的数组的名字){

System.out.println(临时变量名字 );

}

如:for(int x:a){

System.out.println(x);

}

4.数组排序

冒泡排序:

1.算法思想:两个相邻的位置比较大小 较大(小)的后移(交换位置)在与后面的比 以此类推

2.代码实现:

import java.util.Arrays;
​
public class maopao {
    public static void main(String[] args) {
        //冒泡排序
        int[] arr={5,3,4,2,1};
       
        for(int i=0;i<arr.length-1;i++) {//循环次数
            for(int j=0;j<arr.length-1-i;j++) {//交换次数
​
                if (arr[j] > arr[j + 1]) {
​
                   int max = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = max;
                }
​
            }
​
        }
        System.out.println(Arrays.toString(arr));
    }
}
​

选择排序:

1.算法思想:取一个数与后面的数逐个比较 较大(小)的交换法后移 再取下一个数 依此类推

2.代码实现:

import java.util.Arrays;
​
public class xuanze {
    public static void main(String[] args) {
        int[] arr = {5, 3, 2, 4, 1};
        for (int i = 0; i < arr.length - 1; i++) {//控制循环次数 拿出比较基数
            for (int j = i + 1; j < arr.length; j++) {//基数与后面比较次数
                if (arr[i] < arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
​
        }
        System.out.println(Arrays.toString(arr));
    }
}
​

3.选择排序优化:

import java.util.Arrays;
​
public class xuanze {
    public static void main(String[] args) {
        int[] arr = {5, 3, 2, 4, 1};
        for (int i = 0; i < arr.length - 1; i++) {//控制循环次数 拿出比较基数
            for (int j = i + 1; j < arr.length; j++) {//基数与后面比较次数
                if (arr[i] < arr[j]) {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                } else if (arr[i] < arr[j]&&arr[i] < arr[j + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[j + 1];
                    arr[j + 1] = temp;
                } else if (arr[i] < arr[j]&&arr[i] < arr[j + 1]&&arr[i] < arr[j + 2]) {
                    int temp = arr[i];
                    arr[i] = arr[j + 2];
                    arr[j + 2] = temp;
                } else if (arr[i] < arr[j]&&arr[i] < arr[j + 1]&&arr[i] < arr[j + 2]&&arr[i] < arr[j + 3]) {
                    int temp = arr[i];
                    arr[i] = arr[j + 3];
                    arr[j + 3] = temp;
​
                }
            }
​
        }
        System.out.println(Arrays.toString(arr));
    }
}
​

5.二维数组

1.定义

int a = {{1,2,3},{1,2,3},{1,2,3}};

2.声明

int[] [] a;

int a [] [];

//推荐第一种

3.数组的创建

int a = new int{{1,2,3},{1,2,3},{1,2,3}};

int [] [] b = {{1,2,3},{1,2,3},{1,2,3}};

int c = new int[3] [5];

● int arr = new int[3] [5];---定义了一个整型的二维数组 ,有3

个一维数组,每一个一维数组包含5个元素

4.二维数组的迭代

int [][] b1 = new int [][]{{1,2},{3,4}};
for(int i =0;i<b1.length;i++){
    for(int j =0;j<b1[i].length;j++){ 
    System.out.print(b1[i][j]); 
    } 
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团团kobebryant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值