小伙伴们都知道数组吧,就算是新学习java的小伙伴应该也知道,那你们知道该如何动态创建数组吗?下面就跟小编来看看如何动态创建数组吧。
java数组创建
示例:
import java.util.Scanner; //声明一个int型的数组,循环接收8个学生的成绩, //计算这8个学生的总分及平均分。 public class Homework3 { public static void main(String[] args) { Scanner input = new Scanner(System.in); //声明数组 int[] a = new int[8]; //计算总分 int sum = 0; //接收8个学生的成绩 for (int i = 0; i < a.length; i++) { System.out.println("请输入成绩:"); a[i] = input.nextInt(); sum = sum + a[i]; } System.out.println("总分:" + sum); System.out.println("平均分:" + sum / a.length); } }
Java动态数组创建
示例:
package com.ct.array; /** * @author MoonMonster * @version */ public class Array { //数组中元素个数 private int count = 0; //初始容量大小 private int capcity = 16; //增量,每次增加的比例 private double increment = 1.2; //初始化数组 private Object[] src = new Object[capcity]; public Array() {} //自定义原始数组大小 public Array(int capcity) { this.capcity = capcity; } // 增加 public void add(Object obj) { //判断是否越界,如是,则扩充数组 if (count >= src.length) { src = extend(); } //将新增加的数据放在count处 src[count] = obj; count++; } // 对数组的扩充 private Object[] extend() { //扩充后的数组容量是旧的数组的increment倍 Object[] dest = new Object[(int)(src.length * increment)]; for (int i = 0; i < src.length; i++) { dest[i] = src[i]; } //返回扩充后的数组 return dest; } // 输出 public void print() { for (int i = 0; i < count; i++) { System.out.print(src[i] + " "); } System.out.println(); } // 获得数组大小 public int size() { return count; } // 插入 public void insert(int index, Object obj) { if (count + 1 >= src.length) { src = extend(); } //从最后一个元素开始,把前一个元素放到后一个位置来 for (int i = count; i > index; i--) { src[i] = src[i - 1]; } //将要插入的元素放在index处 src[index] = obj; //在插入一个元素后,长度+1 count++; } //替换index处的数据 public void replace(int index, Object obj) { src[index] = obj; } //删除index处的数据元素 public void delete(int index) { for (int i = index; i < src.length - 1; i++) { src[i] = src[i + 1]; } count--; } //返回index处的数据 public Object get(int index) { return src[index]; } }
测试:
package com.ct.array; /** * @author MoonMonster * @version */ public class Demo { public static void main(String[] args) { Array arr = new Array(); long t1 = System.currentTimeMillis(); for (int i = 0; i < 10; i++) { arr.add(new Integer(i)); } long t2 = System.currentTimeMillis(); System.out.println("耗时: " + (t2 - t1)); arr.insert(2, new Integer(123)); //删除 arr.delete(0); //输出 arr.print(); //数组长度 System.out.println("数组的长度为: " + arr.size()); } }
注明:
-在定义增量时,不要定义成一个固定的值,每次扩充一定比例。
-比例不是越大越好,也要考虑到内存问题,所以取个合适的值就行。
-在删除和增加等方法中,不要使用临时数组来保存数据,那样会耗时耗内存。
以上就是关于动态创建数组的所有内容了,更多数组相关java入门知识请持续关注本站了解详情吧。
推荐阅读: