ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据结构之动态数组--接上篇

2022-07-05 12:31:19  阅读:146  来源: 互联网

标签:arr 接上 -- System println Array 数据结构 out size


//重置数组大小长度
    private void resize(int newCapacity){
        E[] newData = (E[]) new Object[newCapacity];
        for(int i = 0 ; i < size ; i ++)
            newData[i] = data[i];
        data = newData;
    }

main方法

package com.practice;

import com.practice.Array.Array;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Array<Integer> arr = new Array<Integer>();
        for(int i = 0 ; i < 10 ; i ++)
            arr.addLast(i);
        System.out.println(arr);

        arr.add(1,100);
        System.out.println(arr);

        arr.addFirst(-1);
        System.out.println(arr);



        /*arr.remove(2);
        System.out.println(arr);

        arr.removeElement(4);
        System.out.println(arr);

        arr.removeFirst();
        System.out.println(arr);*/
    }
}

 

运行main方法测试

Array:size= 10 , capacity = 10 
[0,1,2,3,4,5,6,7,8,9]
Array:size= 11 , capacity = 20 
[0,100,1,2,3,4,5,6,7,8,9]
Array:size= 12 , capacity = 20 
[-1,0,100,1,2,3,4,5,6,7,8,9]
元素个数小于当前数组容积
//从数组中删除index位置的元素,返回删除的元素
    public E remove(int index){
        if(index < 0 || index >= size )
            throw new IllegalArgumentException("Set failed.Index is illegal.");

        E ret = data[index];
        for(int i = index + 1 ; i < size ; i ++){
            data[i-1] = data[i];
        }
        size --;
        data[size] = null;//loitering objects != memory leak

        //如果当前元素个数小于当前数组容积的一般
        if(size == data.length / 2)
            resize(data.length / 2);
        return ret;
    }

main方法

package com.practice;

import com.practice.Array.Array;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Array<Integer> arr = new Array<Integer>();
        for(int i = 0 ; i < 10 ; i ++)
            arr.addLast(i);
        System.out.println(arr);

        arr.add(1,100);
        System.out.println(arr);

        arr.addFirst(-1);
        System.out.println(arr);



        arr.remove(2);
        System.out.println(arr);

        arr.removeElement(4);
        System.out.println(arr);

        arr.removeFirst();
        System.out.println(arr);
    }
}

main方法运行结果

Array:size= 10 , capacity = 10 
[0,1,2,3,4,5,6,7,8,9]
Array:size= 11 , capacity = 20 
[0,100,1,2,3,4,5,6,7,8,9]
Array:size= 12 , capacity = 20 
[-1,0,100,1,2,3,4,5,6,7,8,9]
Array:size= 11 , capacity = 20 
[-1,0,1,2,3,4,5,6,7,8,9]
Array:size= 10 , capacity = 10 
[-1,0,1,2,3,5,6,7,8,9]
Array:size= 9 , capacity = 10 
[0,1,2,3,5,6,7,8,9]

 

标签:arr,接上,--,System,println,Array,数据结构,out,size
来源: https://www.cnblogs.com/oneJavaWorkerStudy/p/16445971.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有