Java基础总结 • 【第8章 数组进阶用法】

全部章节 >>>>


//1.变量交换和数组的算法

  • 变量交换

    • 方法一,引用第三个变量

public class 方法一 {
	public static void main(String[]args){
		String a="a";
		String b="b";
		String temp;
		System.out.println("交换前a:"+a+"\n交换前b:"+b);
		temp=a;   //现在temp保存了a原来的值
		a=b;      //现在把b赋值给了a
		b=temp;   //现在把a原来的值给b
		System.out.println("交换后a:"+a+"\n交换后b:"+b);
	}
}

效果图:
在这里插入图片描述

  • 方法二,求和

public class day9_03 {
	public static void main(String[]args){
		int a = 10;
		int b = 30;
		System.out.println("交换前a:"+a+"\n交换前b:"+b);
		a = b+a;   //现在a=10+30=40    b=30
		b = a-b;   //现在a=40    b=40-30=10
		a = a-b;   //现在a=40-10=30    b=10
		System.out.println("交换后a:"+a+"\n交换后b:"+b);
	}
}

效果图:
在这里插入图片描述

  • 求最大值:

public class 求最大值 {
    public static void main(String[] args) {

        // 定义一个整数数组,同时给与初始值
        int[] numList = {11, 22, 4, 3, 64, 33};

        // 定义一个变量,用于保存最大的数据
        int temp = numList[0];

        // 开始遍历
        for (int i = 1; i < numList.length; i++) {
            // 需要重复的事情就是
            // 拿temp的数据与下标所对应的数据进行大小比较,
            if (numList[i] > temp) {
                // 把当前下标对应的值,赋给temp变量
                temp = numList[i];
            }
        }

        System.out.println("最大的值是" + temp);


    }
}


效果图
在这里插入图片描述

//2.数组的升序和降序

  • 导包:import java.util.Arrays;

  • 升序:Arrays.sort( 数组名称 );

代码

import java.util.Arrays;
public class day9_01 {
	public static void main(String[]args){
	
		// 定义一个整数数组,同时给与初始值
		int[] money={20,36,78,35,21,14,63};
		
		//从小到大排序
		Arrays.sort(money);  
		
		//遍历数组
		for(int i=0;i<money.length;i++){
			System.out.println(money[i]);   
		}
	}
}

效果图:
在这里插入图片描述

  • 逆序:

代码


public class day9_04 {
	public static void main(String[] args) {
	
		//定义字符串数组,并给予A,B,C,D,E
		String[] sz={"A","B","C","D","E"};

		//遍历
		for(int i=0;i<sz.length;i++){
			System.out.println("逆序前:"+sz[i]);
		}
		
		/*逆序
		原理:让下标第一位和倒数第一位交换,再让第二位和倒数第二位交换
		比如让A和E交换,再让B和D交换,使他们逆序。
		*/
		for(int i=0;i<sz.length/2;i++){
			String a=sz[i];
			sz[i]=sz[(sz.length)-1-i];
			sz[(sz.length)-1-i]=a;
		}
		
		//遍历
		for(int i=0;i<sz.length;i++){
			System.out.println("逆序后:"+sz[i]);
		}
	}
}

效果图:
在这里插入图片描述

  • 追加数据

代码


public class day9_08 {
	public static void main(String[] args) {
	
		//定义一个字符串数值
		String[] a=new String[5];
		
		//给空间赋值
		a[0]="hello";
		a[1]="java";
		a[2]="welcom";
		
		//需要插入的数据
		String b="html";

		//遍历找出空出的位置
		for(int i=0;i<a.length;i++){

			//每次遍历判断下标是不是null
			if(a[i]==null){
			//把需要插入的数据给空出来的位置
				a[i]=b;
				break;
			}
		}
		//遍历
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
		}
	}
}

效果图
在这里插入图片描述

  • 中部插入数据

代码


public class day9_08 {
	public static void main(String[] args) {
	
		//定义一个字符串数值
		String[] a=new String[5];
		
		//给空间赋值
		a[0]="hello";
		a[1]="java";
		a[2]="welcom";

		//需要插入的数据
		String b="html";

		//遍历
		for(int q=0;q<a.length;q++){
			System.out.println("插入前:"+a[q]);
		}

		//开始插入,遍历找出空的位置
		for(int i=0;i<a.length;i++){
			//每次遍历判断下标是不是null
			if(a[i]==null){
				//找出null,进入下一步,把数据往后移的遍历
				for(;0<=i;i--){
					//数据往后移
					int sz=i-1;
					a[i]=a[sz];
					
					
					//移了之后空出的位置
					if(sz==1){
						//插入数据并结束遍历
						a[sz]=b;
						break;
					}
				}
				break;
			}
		}

		//遍历
		for(int q=0;q<a.length;q++){
			System.out.println("插入后:"+a[q]);
		}
	}
}

效果图
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值