• Java基础教程——数组


    数组

    Java数组:用于存储同一种数据类型的多个数据。

    Java数组本身是一种数据类型——引用类型。

    类(String、Scanner等大写字母开头的类型)也属于引用类型,int、double等基本类型不是引用类型。

    数组的定义

    // C语言风格
    int a[] = { 1, 2, 3 };
    
    // Java风格(面向对象风格,推荐!)
    int[] b = { 4, 5, 6 };
    

    静态初始化和动态初始化

    也就是“手动赋值”、“系统赋值”:

    public class 静态初始化和动态初始化 {
    	public static void main(String[] args) {
    		int[] _静态初始化 = new int[] { 1, 2, 3 };
    		int[] _静态初始化_简化 = { 1, 2, 3 };
    		char[] _动态初始化 = new char[3];
    	}
    }
    

    动态初始化的场合,系统赋什么值?

    大分类 小分类 系统赋值
    基本类型 整数类型 0
    基本类型 浮点类型 0 .0
    基本类型 字符类型 'u0000'
    基本类型 布尔类型 FALSE
    引用类型 类、接口、数组 null

    遍历数组

    数组通过“索引(index)”访问,从0开始,最大为“数组长度-1”。

    int[] c = new int[5];
    
    // ↓↓↓写入
    for (int i = 0; i < c.length; i++) {
    	c[i] = i * 2;
    }
    
    // ↓↓↓输出
    for (int i = 0; i < c.length; i++) {
    	System.out.println(c[i]);
    }
    

    Java 5之后,加入了“foreach循环”,代码更简洁。

    int[] d = { 1, 2, 3, 4, 5 };
    
    // foreach循环遍历数组:只读
    for (int n : d) {
    	System.out.println(n);
    }
    

    该循环体中,对n赋值是可以的,但只是对临时变量赋值,无法改写数组中的实际值。

    数组的应用:冒泡排序

    核心思想:

    • 一个数和其它数比较(循环)

    • 每个数都要做这种比较(再一层循环)


    虎老狮口诀
    冒泡排序三步走:

    循环、

    交换、

    回一手

    (回一手是在内层循环-i,主要是为了减少无畏的比较次数,提高效率,不回也行)

    public class BubbleSort {
    	public static void main(String[] args) {
    		int[] arr = { 1, 2, 3, 4, 5 };
    		int temp;
    		for (int i = 0; i < arr.length; i++) {
    			// 注意,内存循环要-1,否则比较时[j+1]会越界
    			for (int j = 0; j < arr.length - 1 - i; j++) {
    				if (arr[j] < arr[j + 1]) {
    					temp = arr[j];
    					arr[j] = arr[j + 1];
    					arr[j + 1] = temp;
    				}
    			}
    		}
    		for (int n : arr) {
    			System.out.println(n);
    		}
    	}
    }
    

    Arrays类

    Arrays类提供了大量的静态方法,实现数组的常见操作。

    import java.util.Arrays;
    public class TestArrays类 {
    	public static void main(String[] args) {
    		int[] arr = { 2, 1, 5, 4, 3 };
    		// Arrays.sort(数组):升序排列
    		Arrays.sort(arr);
    		// *Java 8的并行排序,支持多核CPU,更快
    		Arrays.parallelSort(arr);
    		// Arrays.toString(数组):数组转为字符串
    		String s = Arrays.toString(arr);
    		System.out.println("排序后:" + s);
    	}
    }
    
  • 相关阅读:
    上传文件(一)
    momentjs
    asp.net中session的原理及应用
    聊天程序(基于Socket、Thread)
    接口与抽象类
    asp.net 发送邮件
    Web.Config文件详解
    Apache Sqoop
    HBase 数据模型(Data Model)
    HBase框架学习之路
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11179029.html
Copyright © 2020-2023  润新知