学习Java过程中创建动态数组的两种方法比较
学习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更像是它的升级版。
代码及解释如下:
//用户向数组内输入并且最后将输入的数组遍历出来 使用动态数组ArrayListpublic 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);}
比较两种方法,我个人比较推荐是第二种方法,因为第二种方法可以动态的改变数组的长度,当我删除数组内容或者增加数组内容时我的数组长度随时是可变,所以这种方法比较好用一点。
学习Java过程中创建动态数组的两种方法比较相关推荐
- hadoop学习——在HDFS中创建文件夹的两种方法
参考书籍:<Hadoop大数据技术开发实战> shell命令创建文件夹 启动hdfs,终端输入:start-dfs.sh 在hdfs中创建一个input文件夹: hadoop fs -mk ...
- Java/Android中汉字转拼音的两种方法,优劣比较
一.前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录).于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二.汉字转拼音的方法 使用第 ...
- java数组循环扩容_Java中实现数组动态扩容的两种方法
Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...
- java创建数组的两种方法
java创建数组的两种方法 1,静态初始化 int[] array={1,2,3,4,5}; 2,动态初始化 1)先分配空间再给数组元素赋值 int[] array=new int[10]; //需指 ...
- JAVA中创建线程池的五种方法及比较
之前写过JAVA中创建线程的三种方法及比较.这次来说说线程池. JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用.另一类是通过Thr ...
- 在java程序中定义的类有两种成员_java试题 急需答案 谢谢!!!
三.填空(每小题2分,共10分)1.在Applet中,创建一个具有10行45列的多行文本区对象ta的语句为:2.创建一个标识有"关闭"字样的标签对象gb的语句为.3.方法是一种仅有 ...
- 知识点2:js(javascript)中检测是否为数组的两种方法【翻转数组案例】
javascript基础知识 文章目录 javascript基础知识 前言 一.翻转数组案例 二.检测数组的两种方法 1.如果传输的参数不是数组 2.instanceof 运算符 可以用来检测是否满足 ...
- 在Oracle中执行动态SQL的几种方法------转载
在Oracle中执行动态SQL的几种方法 在一般的sql操作中,sql语句基本上都是固定的,如: SELECT t.empno,t.ename FROM scott.emp t WHERE t.de ...
- matlab创建三维数组的三种方法
在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为"列",而对于三维数组的第三位则是习惯性的称为"页".在Matlab中将三 ...
- Java中的string定义的两种方法和区别
java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...
最新文章
- Oracle procedure
- master线程的主循环,后台循环,刷新循环,暂停循环
- OpenGL硬件加速指南
- 【Android应用开发】 Universal Image Loader ( 使用简介 | 示例代码解析 )
- MFC总结之CListCtrl用法及技巧
- php php拼接字符串函数_PHP_PHP开发中常用的字符串操作函数,1,拼接字符串 拼接字符串是最 - phpStudy...
- 【ELMAN回归预测】基于matlab鲸鱼算法优化ELMAN回归预测【含Matlab源码 1667期】
- EMC测试-基础2EMI测试_辐射发射
- 借助MATLAB与SIMULINK仿真嵌入式C算法
- 华为笔试题库之较难--难度
- 厌学孩子如何进行心理疏导[为本教育]
- 人肉搜索与网络实名制
- 城市的灵魂——记董敬明教授讲座
- Kalilinux2017.2安装搜狗拼音输入法
- 手把手教你做树莓派魔镜-MagicMirror(六)-安装MagicMirror
- http常用请求头与响应头字段详解
- 留学计算机美国硕士,美国硕士留学计算机专业录取情况
- 淘宝客,根据淘宝Url,获取到商品的ID
- NVIDIA GTC 明日如约举行,持续 15 天,三万人已报名
- RSPapers | 对话推荐系统论文合集