数组练习题

目录

数组概念

数组创建

数组使用

创建

存值

取值

遍历

获取数组长度

数组默认值

练习题1

练习题2


数组概念

一组连续的存储空间,存储多个相同的数据类型的值

数组创建

int [] str=new int[5];

数组使用

创建;存值;取值

创建

int []nums=new int[4];

存值

nums[0]=1;
nums[1]=1;
nums[2]=1;
nums[3]=1;

取值

方法一:int num=nums[3];
		System.out.println(num);
方法二:System.out.println(nums[0]);

遍历

方法一:for(int i=0;i<=nums.length;i++){
			System.out.println(nums[i]);
 方法·二:for(int i:nums){//
		System.out.println(i);

获取数组长度

System.out.println(nums.length);//查看数组长度

数组默认值

数组默认值
整数0
小数0.0
布尔false
字符\u0000
其他null

练习题1

1、给定一个整数数组,读入一个整数,如果n在数组中存在,输出下标,不存在输出-1

int str[]=new int[]{12,3,4,5};
	 Scanner sc=new Scanner(System.in);
	 System.out.println("请输入一个整数");
	 int num=sc.nextInt();
	 boolean flag=false;//没找到
	 for(int i=0;i<str.length;i++){
		 if(num==str[i]){
			 flag=true;//找到了
			 System.out.println("下标"+i);
			 }
		 }
	 if(!flag){//flag=false
		 System.out.println("下标-1" );
	 }

练习题2

数组插入、删除、查找、替换、扩容

static int size = 0;// 有效元素个数
		 // 数组扩容
	static	int[] nums = new int[5];
	public static void main(String[] args) {
			insert(0, 11);
			insert(1, 22);
			insert(2, 33);
			printArray();
			insert(3, 44);
			printArray();
			int target=search(4);
			System.out.println(target);
			replace(1,90);
			printArray();
			delete(1);
			printArray();
		}
		// 定义一个方法为nums数组添加新值

		public static void insert(int position, int value) {
			//进行扩容
			if(size==nums.length){
				 expand();
			}
			 // for(int i=0;i<nums.length;i++)
			// { if(nums[i]==0)
			// { nums[i]=value; 
			 // break;
			// } }
			 // nums[size]=value;
			//  size++;//保存新值,
			// nums[size++]=value;
			 
			// 移动元素。进而插入值

			if (position < 0 && position > size) {// 有效位置判断
				System.out.println("输入位置错误,请输入0到" + size + "之间的位置");
				return;
			}
			for (int size ,i=0; i > position; i--) {
				nums[i] = nums[i - 1];
			}
			nums[position] = value;
			size++;
		}
		public static void expand(){//扩容的方法
			System.out.println("开始扩容");
			int[] newnums=new int [nums.length*2];
			System.arraycopy(nums, 0, newnums, 0, nums.length);
			//地址替换
			nums=newnums;
		}
		public static void delete(int position){//删除
			if (position < 0 && position > size) {// 有效位置判断
				System.out.println("输入位置错误,请输入0到" + size + "之间的位置");
				return;
			}
			for(int i=position;i<size-1;i++){
			   nums[i]=nums[i+1];
			}
		size--;//元素个数递减
			//删除功能,根据删除位置输入对应值,将位置后的值一次向前移动
		}

	     public static void replace(int position,int value){//替换
	    	 if (position < 0 && position > size) {// 有效位置判断
	 			System.out.println("输入位置错误,请输入0到" + size + "之间的位置");
	 			return;
	 		}
	    	 nums[position]=value;
	    	 //将原位置的值替换为新值
		}
	     public static int search(int position){//查找
	 		//将通过下标获取对应的值,
	    	 if (position < 0 && position > size) {// 有效位置判断
	 			System.out.println("输入位置错误,请输入0到" + size + "之间的位置");
	 			return -1;//-1代表有问题无对应的下标;
	 		}
	        return nums[position];
	 	}
		// 遍历数组的方法
		public static void printArray() {
			for (int i = 0; i < size; i++) {
				System.out.print(nums[i] + "\t");
			}
			System.out.println();
		}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值