学习Java过程中创建动态数组的两种方法比较

11 篇文章 0 订阅
2 篇文章 0 订阅

学习Java过程中创建动态数组的两种方法比较

修改之前所写的动态数组的方法:之前所说想实现那种动态改变长度的数组,之前在定义时出了错,后面我去看了数组的创建过程,发现有一个地方出错了,之后试着写了一下,发现下面这个方法可以勉强的实现我想要的可以手动确认想要的数组长度:

	//实现动态数组方法
	public static void dot(){
		int a;
		a = new Scanner(System.in).nextInt();
		String[] d = new String[a];
		//在创建数组时,给数组一个整型的参数,我们通过这个参数的可变来更改数组的长度。
		for(int i=0;i<a;i++){
			String x = new Scanner(System.in).next();
			d[i] = x;
		}
		for(int i=0;i<d.length;i++){
			System.out.println(d[i]);
		}
	}
	//其实这种方法只能说是一种假动态,因为除了第一次可以确定数组长度之外,之后的对数组的操作中我都不能对数组的长度进行更改,所以这种方法还是不太适用

之前 我的想法很简单,让数组的长度不固定不就好了么,这不就可以实现我的想法了么,但是这个方法只能实现第一次的数组长度动态,而不能在后面对它的长度进行更改,所以这种动态定义的数组只是一种假动态的效果。

  • 那么在之后我去查阅了一些资料,在Java中有动态数组提供使用,使用ArrayList创建的数组可以动态的更改数组长度,就可以灵活的对数组进行操作,这里我看了一下Array数组,它是一个固定长度的数组,而ArrayList更像是它的升级版。

代码及解释如下:

	//用户向数组内输入并且最后将输入的数组遍历出来 使用动态数组ArrayList
	public static void shuru(){
		//单独写了个方法存放动态数组,这里不用管
		//创建一个Scanner对象,因为后面要用到从键盘获取输入的值,所以先创建了
		Scanner sc = new Scanner(System.in);
		//这里是从键盘获取一个输入的int类型的值,用于后面动态数组输入的值的多少
		int size = sc.nextInt();
		//使用ArrayList创建一个动态数组,<String>表示这个数组储存的类型是String类型。
		ArrayList<String> arr = new ArrayList<String>();
		//这里使用一个循环来控制从键盘输入的值的量,其实这里就是在间接的控制
		for(int i=0;i<size;i++){
			 //从键盘接收用户输入的内容
			 String x = sc.next();
			 //将这个内容加入到arr数组中
			 arr.add(x);
		}
		//输出arr数组时它会自动将arr数组内的东西全部输出出来,形成一个遍历的效果。
		System.out.print(arr);
		//删除第五个元素,因为这个数组的计算是从0开始,所以个数要将0计算进去。
		arr.remove(4);//remove(int类型的参数)这个方法表示删除。
		//换行
		System.out.println();
		//显示删除元素后的arr数组形成一个对比。
		System.out.print(arr);
		
	}
比较两种方法,我个人比较推荐是第二种方法,因为第二种方法可以动态的改变数组的长度,当我删除数组内容或者增加数组内容时我的数组长度随时是可变,所以这种方法比较好用一点。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值