• 常用的数据结构—数组


    原文链接:常用的数据结构

    常用的数据结构—数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

    Java 语言中提供的数组是用来存储固定大小的同类型元素。

    你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

    要使用Java的数组,必须经过以下两个步骤。
    (1) 声明数组。
    (2) 分配内存给该数组。

    一维数组

    这两个步骤的语法如下。

    数据类型  数组名[];       // 声明一维数组
    数据类型[]  数组名;		 // 声明一维数组
    数组名 = new 数据类型[个数]; //分配内存给数组
    
    // 另外一种创建数组的方法
    数据类型[] 数组名 = {value0, value1, ..., valuek};
    

    注意: 建议使用 数据类型[]  数组名 的声明风格声明数组变量。 数据类型  数组名[] 风格是来自 C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。

    实例1:

    package cn.coder306;
    
    public class Main {
    	public static void main(String[] args) {
            //创建数组 语法:数据类型[] 数组名 = {value0, value1, ..., valuek};
            int [] numbers = {10, 20, 30, 40, 50};
    		readNumbers(numbers);
    	}
    	
    	// 读数字
    	public static void readNumbers(int[] numbers) {
    		for(int n :  numbers) {
                if(n == 30){
                    // 跳出循环
                    break;
                }
    			System.out.println("数字:" + i);
    		}
    	}
    }
    

    实例2:

    有一个int类型的购物车,需要给这个存放车子所有物品的序号。

    package cn.coder306;
    
    public class Main {
    	public static void main(String[] args) {
            //创建数组 语法:数据类型[] 数组名 = new 数据类型[个数];
            int[] car = new int[10];
    		
    		for(int i = 0 ;i < car.length; i++) {
    			car[i] = i;
    		}
    	}
    }
    

    多维数组

    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

    String str[][] = new String[3][4];
    

    语法:

    数据类型  数组名[][];       // 声明二维数组
    数据类型[][]  数组名;		 // 声明二维数组
    数组名 = new 数据类型[个数][个数]; //分配内存给数组
    
    // 另外一种创建二维数组的方法
    数据类型[][] 数组名 = {{value0, value1, ..., valuek},{value0, value1, ..., valuek}....};
    

    实例:

    要求使用二维码数组按照座位顺序记录班级所有学生成绩,班级只有4排2列

    image-20200627205536562

    package cn.coder306;
    
    public class Main {
    	public static void main(String[] args) {
            // 班级分数记录二维数组
    		int[][] scores = new int[2][];
    		
            // 第一排分数
    		int[] col1 = new int[4];
    		col1[0] = 78;
    		col1[1] = 79;
    		col1[2] = 67;
    		col1[3] = 80;
    		
            // 第二批分数
    		int[] col2 = new int[4];
    		col2[0] = 98;
    		col2[1] = 99;
    		col2[2] = 100;
    		col2[3] = 95;
    		
    		scores[0] = col1;
    		scores[1] = col2;
    	}
    }
    

    数组操作

    对比两个数组对应位置元素值是否相同

    package cn.coder306;
    
    public class Main {
    	public static void main(String[] args) {
    		
    		int[] col1 = new int[4];
    		col1[0] = 78;
    		col1[1] = 79;
    		col1[2] = 67;
    		col1[3] = 80;
    		
    		int[] col2 = new int[4];
    		col2[0] = 98;
    		col2[1] = 99;
    		col2[2] = 100;
    		col2[3] = 95;
    		
    		boolean result = equalsArrays(col1, col2);
    		System.out.println(result);
    	}
    	
    	/**
    	 * 对比数组是否相同
    	 * @param col1
    	 * @param col2
    	 * @return
    	 */
    	public static boolean equalsArrays(int[] col1,int[] col2) {
    		//先判断数组长度是否一致
    		if(col1.length != col2.length) {
    			return false;
    		}
    		
    		// 判断元素值是否相同
    		for(int i  = 0;i < col1.length ; i++) {
    			if(col1[i] != col2[i]) {
    				return false;
    			}
    		}
    		return true;
    	}
    }
    

    思考题:

    完成数组int[] col1 = {78,30,50,49,80}进行排序?

    查找数组int[] col1 = {78,30,50,49,80}中80的位置?

    深入探讨可以加笔者QQ:1120855315
    点击获取免费Java免费视频
    添加QQ群837949026可以领取更多学习资料

  • 相关阅读:
    高斯 约旦消元法
    取模运算相关的常数优化
    数论同余学习笔记 Part 3
    异或相关的杂题
    数论同余学习笔记 Part 1
    杂题乱做(一)
    c++优先队列(priority_queue)用法详解
    https://lyxw.xyz
    [题目] Luogu P3707 [SDOI2017]相关分析
    [笔记]Splay&Treap&FhqTreap
  • 原文地址:https://www.cnblogs.com/coder306/p/13210008.html
Copyright © 2020-2023  润新知