zoukankan      html  css  js  c++  java
  • JAVA_SE基础——20.数组的常见操作

    1.遍历数组

    使用for循环来遍历数组 代码如下:

    public class Ergodic {
    	public static void main(String[] args) {
    		int[] arr = { 1, 2, 3, 4, 5 };  // 定义数组
    		// 使用for循环遍历数组的元素
    		for (int i = 0; i < arr.length; i++) {
    			System.out.println(arr[i]); // 通过索引访问元素
    		}
    	}
    }

    结果如下;


    定义长度为5的数组arr,数组的角标为0~4. 由于for循环中定义的变量i的值在循环过程中为0~4,因此可以作为索引,依次去访问数组中的元素,并将元素的值打印出来。


    2.数组最值

    数组的长度获取:数组名.length     获取数组最后一个元素的角标(索引):数组名.length-1

    下面我用一个代码示例来演示下数组最值(获取数组中元素的最大值):

    public class ShuzuBig {
    	public static void main(String[] args) {
    		int[] arr = { 4, 1, 6, 3, 9, 8 };  // 定义一个数组
    		int max = getMax(arr);               // 调用获取元素最大值的方法
    		System.out.println("max=" + max); // 打印最大值
    	}
    	static int getMax(int[] arr) {
    		int max = arr[0];  // 定义变量max用于记住最大数,首先假设第一个元素为最大值
    		// 下面通过一个for循环遍历数组中的元素
    		for (int x = 1; x < arr.length; x++) {
    			if (arr[x] > max) { // 比较 arr[x]的值是否大于max
    				max = arr[x];   // 条件成立,将arr[x]的值赋给max
    			}
    		}
    		return max;              // 返回最大值max
    	}
    }

    运行结果:

    max=9

    我来解释下关键的几句吧:

    int max = arr[0];
    假设arr数组索引[0]的元素最大,用来和arr数组索引[1]比较

    for (int x = 1; x < arr.length; x++)
    遍历arr数组索引(角标)[1~5]

    if (arr[x] > max) 
    max = arr[x]

    
    如果第二个元素大于第一个就把大的赋给临时变量max   上面注释已经说明的很清楚的了 
    

    3数组排序

    在操作数组时,经常需要对数组中的元素进行排序,接下来的代码就用一种比较常见的排序算法————冒泡排序,  冒泡的过程就是把小的元素往前放 大的往后放 一直排到元素从小到大才结束

    public class BubbleSort{
    	public static void main(String[] args) {
    		int[] arr = { 9, 8, 3, 5, 2 };
    		System.out.print("冒泡排序前  :");
    		printArray(arr); // 打印数组元素
    		bubbleSort(arr); // 调用排序方法
    		System.out.print("冒泡排序后  :");
    		printArray(arr); // 打印数组元素
    	}
    	// 定义打印数组方法
    	public static void printArray(int[] arr) {
    		// 循环遍历数组的元素
    		for (int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " "); // 打印元素和空格
    		}
    		System.out.print("
    ");
    	}
    	// 定义对数组排序的方法
    	public static void bubbleSort(int[] arr) {
    		// 定义外层循环
    		for (int i = 0; i < arr.length - 1; i++) {
    			// 定义内层循环
    			for (int j = 0; j < arr.length - i - 1; j++) {
    				if (arr[j] > arr[j + 1]) { // 比较相邻元素
    					// 下面的三行代码用于交换两个元素
    					int temp = arr[j];
    					arr[j] = arr[j + 1];
    					arr[j + 1] = temp;
    				}
    			}
    			System.out.print("第" + (i + 1) + "轮排序后:");
    			printArray(arr); // 每轮比较结束打印数组元素
    		}
    	}
    }

    结果是:

     

    冒泡排序图解



    数组排序先简单的介绍吧,毕竟我是菜鸟 对其他算法还没专门的去了解过 等以后我会专门开个分类讲算法的 。。





  • 相关阅读:
    一元多项式的运算
    单链表逆转
    字符串函数
    历届试题 错误票据
    不用循环,不用递归,输出1~1000的整数
    sql三维数据
    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 (也就是跨数据库访问出错)
    由于服务器意外的断电,导致SQL SERVER服务器上数据库出现“置疑”而无法使用,
    关于delphi7的四舍五入
    关于delphi exit 继承
  • 原文地址:https://www.cnblogs.com/Jhaiha0/p/8465326.html
Copyright © 2011-2022 走看看