java面试题网

普通会员

483

帖子

9

回复

187

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5087| 回复: 0

java中数组的特点

java中数组的特点

优点:

可以通过索引值访问任何的数组元素, 可以实现随机的访问

缺点:

插入/删除元素时, 需要扩容, 复制或者移动大量的元素, 效率比较低

应用场景:

适用于以查询访问为主, 很少进行插入/删除操作的情况

package com.wkcto.chapter03.demo01;

import java.util.Arrays;

/**
 * 在数组中插入元素
 * @author 蛙课网
 *
 */
public class Test07 {

	public static void main(String[] args) {
		int [] data = {1,2,3,4,5,6,7};
		
		//在data数组,索引值为3的位置插入元素666
		data = insert( data, 3 , 666);
		System.out.println( Arrays.toString(data));  //[1,2,3,666,4,5,6,7]
	}

	//定义方法, 在数组的指定i位置添加一个元素key
	public static int[] insert( int [] myArray, int i, int key) {
		//1)定义更大的数组
		int[] newData = new int[myArray.length+1];
		
		//2) 把[0,i)范围的元素复制到新的数组中
		for(int j = 0 ; j < i ; j++){
			newData[j] = myArray[j];
		}
		
		//3) 把key元素存储到新数组的i位置
		newData[i] = key;
		
		//4) 把原数组[i,lenth)范围的元素复制到新的数组的[i+1, length+1)
		for( int j = i ;  j<myArray.length; j++){
			newData[j+1] = myArray[j];
		}
		
//		//5) 让原来的数组名指向新的数组
//		myArray = newData;
//		System.out.println( Arrays.toString(myArray));
		//5)返回新的数组
		return newData;
	}
}

	//定义方法,删除数组指定位置的元素, 把myArray[i]元素删除
	public static int[] delete(int [] myArray, int i) {
		//1)定义更少的数组
		int [] newData = new int[myArray.length-1];
		//2) 把[0,i)范围 元素复制到新数组中
		System.arraycopy(myArray, 0, newData, 0, i);
		//3) 把[i+1, length)范围的元素复制到新数组[i,lenth-1)
		for( int j = i+1; j < myArray.length; j++){
			newData[j-1] = myArray[j];
		}
		//4) 返回新的数组
		return newData;
	}


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1159_1_1.html


java面试题交流群:327440556

上一篇:java对象数组 下一篇:java数组扩容
您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018