零基础学Java第七天之数组的理解

数组

一、数组-冒泡排序

public class Deom01{
	public static void main(String[] args){
		//定义一个int类型的数组arr  给他赋值为6,3,7,5,2,1
		int[] arr = {6,3,7,5,2,1};
		//开始循环,从下标零开始循环
		for(int i = 0;i<arr.length-1;i++){
            //数组的下标等于数组的长度减1、
            //遍历数组 在数组里找到一个值
			for(int j = 0;j<arr.length-1-i;j++){
               //如果内循环选取的值,比他右边的值大,交换两者的值
				if(arr[j] > arr[j+1]){
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}
        //遍历排序后的数组
		for(int element : arr){
			System.out.println(element);
		}
	}
}

二、数组-线性查找

public class Test02 {
	public static void main(String[] args) {
		
//2.数组的线性查找
		//定义一个数组
		int[] arr={2,56,87,567,234,1,4};
		
		int num=567;
		
		for(int i=0;i<arr.length-1;i++){
			if(num==arr[i]){
				System.out.println("元素下标为:"+i);
			}
		}
    }
}

三、数组-二分法查找

public class Test02 {
	public static void main(String[] args) {
		
	//定义一个数组
		int[] arr={2,56,87,567,234,1,4};
		//顺序排序
		Arrays.sort(arr);
		int num=87;
		
		//查找的长度
		int start=0;
		int end=arr.length-1;
		
		//不知道查找多少次用while
		while(start<=end){
			int mid=(start+end)/2;
			if(num<arr[mid]){
				end=mid-1;
			}else if(num>arr[mid]){
				start=mid+1;
			}else{
				System.out.println("元素下标为"+mid);
				break;
			}
		}
    }
}

四、数组-浅表赋值

public class Test02 {
	public static void main(String[] args) {	
		//原素组
		String[] name={"麻生希","椎名空","水菜丽"};
		
		//新数组
		String[] arr=name;
		//修改原素组下标为1的元素为123
		arr[1]="123";
		
		//遍历数组
		for (String a : arr) {
			System.out.println(a);
		}
    }
}

五、数组-深表赋值

public class Test02 {
	public static void main(String[] args) {	
		//原素组
		String[] name={"麻生希","椎名空","水菜丽"};
		//新宿组
		String[] newName=new String[name.length];
		
		//循环遍历数组,讲name的值赋值给newName
		for(int i=0;i<name.length;i++){
			newName[i]=name[i];
		}
		
		//修改原素组
		name[1]="123";
		//现在修改原数组的值没用,因为之前原素组的值都给了新数组,遍历新数组会得到之前原数组的值,
		//遍历新数组
		for (String a : newName) {
			System.out.println(a);
		}
    }
}

六、数组-扩容

public class Test02 {
	public static void main(String[] args) {
	
		//原素组
		String[] name={"麻生希","椎名空","水菜丽"};
		
		//定义原先数组长度
		int old=name.length;
		//定心新的长度
		int newLength=old+(old>>1);
		
		//定义一个新数组,新数组的长度等于新的长度
		String[] arr=new String[newLength];
		//将name的值赋值给newName
		for(int i=0;i<name.length;i++){
			arr[i]=name[i];
		}
		//将新数组赋值给原数组
		name=arr;
		//遍历原数组
		for (String a : name) {
			System.out.println(a);
		}
    }
}

七、数组的删除

案例一

public class Test02 {
	public static void main(String[] args) {
	
//原数组
//		String[] arr = {"麻生希","椎名空","水菜丽","樱井步"};
		
		//新数组,现在的数组长度为3,里面的值全是空的
		String[] newArr = new String[arr.length-1];
		
		//将除了"椎名空"的元素赋值给新数组 -- ["麻生希","水菜丽","樱井步"]
		//索引
		int index=0;
		//遍历数组
		for(String element:arr){
			//如果元素不为椎名空
			if(!element.equals("椎名空")){
				newArr[index++]=element;
			}
		}
		//将新数组的地址赋值给原数组
		arr = newArr;
		
		//遍历原数组
		for(String element : arr){
			System.out.println(element);
		}
    }
}

案例二

public class Test02 {
	public static void main(String[] args) {
		
		//原数组
		String[] arr = {"麻生希","椎名空","水菜丽","樱井步"};
		
		for(int i=1;i<arr.length-1;i++){
			arr[i]=arr[i+1];
			
		}
		//将最后一位数据赋值为null
		arr[arr.length-1]=null;
		
		
		//遍历原数组
		for(String element : arr){
			System.out.println(element);
		}

	}
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值