java一维数组的几个应用

获取数组长度:

public class Dem03 {

	public static void main(String[] args) {
		int[] nums = {11,22,33,44,23,56,24,78,94,71,66,49,29,100,234,15,36,75,67};
		//遍历数组
		for(int i =0;i<19;i++){
			System.out.print(nums[i]+" ");
		}
		//数组名.length:获取数组元素个数(数组长度)
		int changDu =nums.length;
		System.out.println("nums数组中元素个数:"+changDu);
		
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
	}
}

遍历数组

 遍历数组:将数组中的元素依次取出来
            1)普通for循环来遍历
                for(int i =0; i<数组名.length;i++){
                    System.out.println(数组名[i]);
                }
            2)增强for循环
                for(数据类型 变量名:数组名){
                    System.out.println(变量名);
                }

public class Demo03 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] nums={11,22,33,44,21,313,34,434,431,13,4,34};
		//普通for循环来遍历
		for (int i = 0; i < nums.length; i++) {
			System.out.print(nums[i]+" ");
		}
		System.out.println();
		System.out.println("-------------------------------");
		//增强for循环
		for(int a:nums){
			System.out.print(a+" ");
		}	
	}
}

获取数组中的最大值或者最小值
          思路:
                1)假设数组中的第一个元素为最大值或者最小值
                2)将数组中的元素依次取出来与这个最大值或者最小值进行比较,如果取出来的元素                          比最大值(最小值)大(小),那么该元素成为新的最大值(最小值)大(小),                          那么该元素成为新的最大值(最小值)
                3)比较完所有元素之后,获得最大值(最小值)

public class Demo04 {

	public static void main(String[] args) {
		//求数组最大值和最小值
		int[] nums={43,24,34,56,65,78,28};
		//假设数组中的第一个元素为最大值
		int max=nums[0];
		//假设数组中的第一个元素为最小值
		int min=nums[0];
		for(int i=0;i<nums.length;i++){
			//将每个数进行比较
			if(nums[i]>max){
				max=nums[i];
			}
		}
		for(int j=0;j<nums.length;j++){
			if(nums[j]<min){
				min=nums[j];
			}
		}
		System.out.println("最大值为"+max+" 最小值"+min);		
	}
}

向数组中插入数据,插入数据后,数组保持原来的排序规则
        思路:
            1)新建一个长度比原来数组长度大1的数组
            2)将原来数组中的数据依次存入到新的数组中
            3)获取插入的数据
            4)将插入数据依次与数组中的数据进行比较获得插入位置(下标)
            5)从插入位置开始及之后的元素依次往后移动一位(注意:从最后元素开始移动)
            6)将插入数据存储到插入位置

import java.util.Scanner;

public class Demo01 {

	public static void main(String[] args) {
		/*
		 * 有一个数组元素按照从大到小顺序排列的数组{99,85,82,63, 60},
         * 现在要插入一个数据,数据插入之后,要保证数组依然是按照从大到小顺序排列
		 */
		
		int[] arr1 = {99,85,82,63,60};
		
		//(1)声明一个长度比原来数组长度大1的数组,将原来数组元素存储到新数组中
		int[] arr2 = new int[arr1.length+1];
		for(int i =0;i<arr1.length;i++){
			arr2[i]=arr1[i];
		}
		
		System.out.println("插入元素之前的数组:");
		for (int i = 0; i < arr2.length; i++) {
			System.out.print(arr2[i]+" ");
		}
		System.out.println();
		
		//(2)通过键盘录入获取你想要插入的数据
		Scanner input = new Scanner(System.in);
		System.out.println("请输入你想要插入的数据:");
		int insert = input.nextInt();
	
		//(3)通过比较获取插入数据在数组中的插入位置(通过循环比较实现)
		//声明一个int类型的变量index来存储插入数据在数组中的插入位置
		int index = arr2.length-1;
		
		for(int i = 0;i<arr2.length;i++){
			if(insert>arr2[i]){
				index = i;
				break; //得到插入数据大于数组中的某个元素后就不在往后比较了,结束循环
			}
		}
		
		//(4)从插入位置开始的元素以及之后的元素都要往后移动一位
        //(注意:从最后一个元素开始移动)
		for(int i =arr2.length-1;i>index;i--){
			arr2[i]=arr2[i-1];
		}
		
		//(5)将获取的插入元素存储到插入位置
		arr2[index]=insert;
		
		
		//遍历输出,看一下结果
		for (int i = 0; i < arr2.length; i++) {
			System.out.print(arr2[i]+" ");
		}
		
		
	}

}

冒泡排序
        思路:
            两两相邻的数据进行比较,小的靠前大的靠后,经过多轮比较之后,实现升序排序

public class Demo04 {

	public static void main(String[] args) {
		int[] nums = {16,25,9,20,23};
		System.out.println("排序前的数组:");
		for (int i : nums) {
			System.out.print(i+" ");
		}
		
		System.out.println();
		
		//使用双重for循环实现冒泡排序
		
		//外层循环控制轮数
		for(int i =0;i<nums.length-1;i++){
			//内层for循环控制每一轮的比较次数
			for(int j =0;j<nums.length-1-i;j++){
				//比较
				if(nums[j]>nums[j+1]){//满足条件,元素交换位置
					int temp = nums[j];
					nums[j]=nums[j+1];
					nums[j+1]=temp;
				}
			}
		}
		
		System.out.println("排序后的数组:");
		for (int i : nums) {
			System.out.print(i+" ");
		}

	}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值