博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java数组(二)
阅读量:3947 次
发布时间:2019-05-24

本文共 3875 字,大约阅读时间需要 12 分钟。

数组的常用方法

首先类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 所以java数组继承类Object下的所有方法(以下为常用方法):

boolean equals(Object obj) // 指示其他某个对象是否与此对象“相等”。 protected  void finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 int hashCode() //返回该对象的哈希码值。 String toString() //返回该对象的字符串表示。

数组的复制和拓展

数组的长度一旦定义后,无法改变(元素值可以更改),如果长度变化了,一定是产生了新的数组

,所以出现一些数组复制的方法:

//数组的复制(一)System.arraryCopy(源数组的名字,源数组的开始下标,目标数组名字,目标数组下标,复制的长度);//应用int[] iis = {
11, 22, 33}; // System:java公司 提供的类名 // arraycopy:System类 提供的一个功能 作用是实现 数组的复制 int[] copyIIS = new int[iis.length]; // arraycopy(源数组名, 源数组的开始下标,目标数组名,目标数组的下标,复制的长度); System.arraycopy(iis, 0, copyIIS, 0, iis.length); for (int i = 0; i < copyIIS.length; i++) {
System.out.println(copyIIS[i]); }//数组的复制(二)Arrarys.copyOf(目标数组名称,目标数组长度或者是扩容长度)//应用int[] cs = {
100, 200, 300}; // Arrays:java提供一个类名 记住要导包(java.util.Arrays) // copyOf(): 是 Arrays类的功能 作用是:数组复制 int[] newCs = Arrays.copyOf(cs, cs.length); System.out.println(Arrays.toString(newCs)); for (int i = 0; i < newCs.length; i++) {
System.out.println(newCs[i]); }//数组的复制(三) int[] as = {
10, 20, 30}; int[] copyAs = new int[as.length]; System.out.println("数组复制方法1:"); for (int i = 0; i < copyAs.length; i++) {
// 将 as数组中i下标位置的元素值 赋值给 copyAs数组的对应 i下标位置 copyAs[i] = as[i]; } // 循环输出 copyAs数组的每一个元素的值 for (int i = 0; i < copyAs.length; i++) {
System.out.println(copyAs[i]); }

由于数组大小一旦确定就不可更改,所以可以通过数组的复制来实现数组的扩展,如下:

/*例子(1)* 数组的扩容。(Arrays.copyOf方法)给定一个数组,要求写一个 expand 函数,把原有数组的长度扩容一倍,并保留原有数组原有的内容。* */public class Expand {
public static void main(String[] args) {
int[] e = new int[]{
1,2,3,4,5}; int[] expand = Arrays.copyOf(e,10); System.out.println(Arrays.toString(expand)); }}/*例子(2)*数组的扩容。(System.arraycopy方法)*/public class Ex2 {
public static void main(String[] args) {
int[] a = {
1, 2, 3, 4, 5}; expand(a); System.out.println(); } public static void expand(int[] a) {
int[] newArray = new int[a.length * 2]; System.arraycopy(a, 0, newArray, 0, a.length); }}

数组既然可以进行扩展那就可以进行缩容,由此可以实现数组的元素删除和插入:

//删除public class delete {
public static void main(String[] args) {
int[] array = {
1, 2, 3, 4, 6}; System.out.println("请输入要删除的数组元素下标"); Scanner input = new Scanner(System.in); //获取用户的输入 int index = input.nextInt(); if (index < array.length) {
for (int i = index; i < array.length - 1; i++) {
array[i] = array[i + 1]; } System.out.println(Arrays.toString(array)); int[] newArray = Arrays.copyOf(array, array.length); newArray[array.length - 1] = 0; System.out.println("删除后的数组为:" + Arrays.toString(newArray)); } else {
System.out.println("下标溢出!"); } }}//插入public class insert {
public static void main(String[] args) {
int[] ary = {
1, 2, 3, 6, 0}; Scanner scanner = new Scanner(System.in); System.out.println("请输入要插入元素的下标:"); int index = scanner.nextInt(); System.out.println("请输入要插入元素的值:"); int value = scanner.nextInt(); if (index < 5) {
int[] newAry = new int[ary.length]; for (int i = 0; i < ary.length; i++) {
newAry[i] = ary[i]; } for (int i = newAry.length - 1; i > index; i--) {
newAry[i] = newAry[i - 1]; } newAry[index] = value; ary = newAry; System.out.println(Arrays.toString(ary)); } else {
System.out.println("下标溢出!"); } }}

转载地址:http://axewi.baihongyu.com/

你可能感兴趣的文章
python的collections
查看>>
J2ME程序开发新手入门九大要点
查看>>
双向搜索算法
查看>>
日本GAME製作方式
查看>>
移动行业术语资料
查看>>
3G到来将全面颠覆SP、CP游戏规则
查看>>
射击游戏中跟踪弹及小角度移动的开发
查看>>
播放声音文件的完整源代码
查看>>
J2ME编程最佳实践之灵活的RMS应用
查看>>
MOBILE FIRST: HOW TO APPROACH MOBILE WEBSITE TESTING? 移动优先:如何处理移动网站测试?
查看>>
开始使用Retrofit 2 HTTP 客户端
查看>>
对于初学者练习的6个开源项目
查看>>
保持冷静和需要打破的东西:软件测试初学者
查看>>
如何通过连接您的业务应用程序来节省时间
查看>>
熟悉现代JavaScript的培训计划
查看>>
7本书从小工到数据分析专家
查看>>
程序设计的基本原则:栈和堆
查看>>
Android应用程序架构
查看>>
Android:绘制自定义视图
查看>>
Android开发:一些有用的库(第一部分)
查看>>