精华内容
下载资源
问答
  • Java动态数组

    千次阅读 多人点赞 2018-07-18 10:38:44
    1.Java动态数组的用法详解  Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 ...

    1.Java动态数组的用法详解

         Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。

     语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度。ArrayList的下标是从0开始。

    import java.util.ArrayList;
     
    public class JavaArrayList {
    	public static void main(String[] args) {
    		// Java动态数组的初始化
    		ArrayList al = new ArrayList();
    		// 向Java动态数组中添加数据
    		al.add("a");
    		al.add("b");
    		al.add("c");
    		// 输出Java动态数组
    		for (int i = 0; i < al.size(); i++) {
    			String alEach = (String) al.get(i);
    			System.out.println(alEach);
    		}
    		// 删除数组中的某个元素,删除第二个元素
    		al.remove(1);
    		// 修改Java动态数组,把新的元素放到第二个位置
    		al.add(1, "2");
    		// //输出Java动态数组
    		for (int i = 0; i < al.size(); i++) {
    			String alEach = (String) al.get(i);
    			System.out.println(alEach);
    		}
    	}
    }
    

    2.动态数组实现(ArrayList原理)

    2.1 什么是数组

            同类数据元素的集合,在计算机中以连续的地址存储,编译时确定长度,无法改变。

    2.2 什么是动态数组

           数据结构中顺序表的物理实现,同类数据元素的集合,在计算机中以连续的地址存储,大小在创建时决定,但是可以改变。

    2.3 为什么使用动态数组

           支持随机访问,查询速度快。但是插入和删除都需要移动元素,比起链表开销较大。如:java集合类中的ArrayList Vector等

    2.4 动态数组实现代码(ArrayList原理)

    /**
     * 顺序表的实现
     * @author chengh
     * @param 
     */
    public class ArrayList<E> {
        private Object[] data = null; // data: 用来保存此线性表数据的数组
        private int capacity; // capacity: 线性表的容量
        private int current; // current: 当前数据的下标
        /**
         * 初始化为声明大小,则设置为10。
         */
        ArrayList() {
            this(10);
        }
        /**
         * 初始化线性表,声明保存数据的数组大小。
         * @param initialSize 顺序表的初始化大小
         */
        ArrayList(int initialSize) {
            if (initialSize >= 0) {
                this.capacity = initialSize;
                data = new Object[initialSize];
                current = 0;
            } else {
                throw new RuntimeException("初始化大小不能小于0:" + initialSize);
            }
        }
        /**
         * 在线性表的末尾添加元素,添加之前确认线性表是否已满
         * @param e 待加入的元素
         * @return
         */
        public boolean AddElement(E e) {
            ensureCapacity();
            data[current] = e;
            ++current;
            return true;
        }
        /**
         * 检查存储数据的数组容量,如果数组已经满,则扩充容量;否则不操作。
         */
        private void ensureCapacity() {
            int index;
            if (current == capacity) {
                capacity *= 2;
                Object[] newData = new Object[capacity];
                for(index = 0; index < current; ++index) {
                    newData[index] = data[index];
                }
                data = newData;
            }
        }
        /**
         * 返回下标为index的元素
         * @param index 欲取得元素的下标
         * @return
         */
        public E get(int index) {
            validateIndex(index);
            return (E) data[index];
        }
        /**
         * 
         * @param index 待插入的位置
         * @param e 待插入的元素
         * @return
         */
        public boolean set(int index, E e) {
            validateIndex(index);
            data[index] = e;
            return true;
        }
        /**
         * 验证下标值是否合法,非法时抛出异常
         * @param index 待验证的下标值
         */
        private void validateIndex(int index) {
            if (index < 0 || index > current) {
                throw new RuntimeException("无效的下标:" + index);
            }
        }
        /**
         * 返回当前顺序表的大小
         * @return
         */
        public int size() {
            return current;
        }
        /**
         * 在指定位置插入指定元素
         * @param index 待插入的位置
         * @param e 待插入的元素
         * @return
         */
        public boolean insert(int index, E e) {
            validateIndex(index);
            ensureCapacity();
            for (int temp = current; temp > index; --temp) {
                data[temp] = data[temp - 1];
            }
            data[index] = e;
            return true;
        }
        /**
         * 删除下标为index元素
         * @param index 待删除元素的下标
         * @return
         */
        public boolean delete(int index) {
            validateIndex(index);
            for ( ; index < current - 1; ++index) {
                data[index] = data[index + 1];
            }
            data[current - 1] = null;
            --current;
            return true;
        }
        @Override
        public String toString() {
            String str = "[ ";
            for (Object o : data) {
                if (o != null) {
                    str += o + " ";
                }
            }
            str += "]";
            return str;
        }
    } 

     

    展开全文
  • Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。1.语法:add()是添加一个新的元素...

    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。

    1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度。ArrayList的下标是从0开始。

    2.示例代码

    package wang48.jiaocheng;

    import java.util.ArrayList;

    public class JavaArrayList

    {

    public static void main(String[]args)

    {

    //Java动态数组的初始化

    ArrayList al=new ArrayList();

    //向Java动态数组中添加数据

    al.add("a");

    al.add("b");

    al.add("c");

    //输出Java动态数组

    for(int i=0;i

    {

    String alEach=(String)al.get(i);

    System.out.println(alEach);

    }

    //删除数组中的某个元素,删除第二个元素

    al.remove(1);

    //修改Java动态数组,把新的元素放到第二个位置

    al.add(1,"2");

    输出Java动态数组

    for(int i=0;i

    {

    String alEach=(String)al.get(i);

    System.out.println(alEach);

    }

    }

    }

    输出如下:

    a

    b

    c

    a

    2

    c

    展开全文
  • Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。1.语法:add()是添加一个新的元素...

    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。

    1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度。ArrayList的下标是从0开始。

    2.示例代码

    package wang48.jiaocheng;

    import java.util.ArrayList;

    public class JavaArrayList

    {

    public static void main(String[]args)

    {

    //Java动态数组的初始化

    ArrayList al=new ArrayList();

    //向Java动态数组中添加数据

    al.add("a");

    al.add("b");

    al.add("c");

    //输出Java动态数组

    for(int i=0;i

    {

    String alEach=(String)al.get(i);

    System.out.println(alEach);

    }

    //删除数组中的某个元素,删除第二个元素

    al.remove(1);

    //修改Java动态数组,把新的元素放到第二个位置

    al.add(1,"2");

    输出Java动态数组

    for(int i=0;i

    {

    String alEach=(String)al.get(i);

    System.out.println(alEach);

    }

    }

    }

    输出如下:

    a

    b

    c

    a

    2

    c

    展开全文
  • java动态数组

    2015-08-04 10:51:07
    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 Java动态数组是一种可以任意...

    转自http://blog.sina.com.cn/s/blog_6e51df7f0100tnnh.html

    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。

    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。

    1.语法:add()是添加一个新的元素,

                  remove()删除一个元素,

                  size()获得ArrayList的长度。

    ArrayList的下标是从0开始。

    2.示例代码

    import java.util.ArrayList;


    public class JavaArrayList {
           public static void main(String[]args) {
                   //Java动态数组的初始化
                   ArrayList al=new ArrayList();
                   //向Java动态数组中添加数据
                   al.add("a");
                   al.add("b");
                   al.add("c");
                   //输出Java动态数组
                   for(int i=0;i<al.size();i++) {
                            String alEach=(String)al.get(i);
                             System.out.println(alEach);
                   }
                   //删除数组中的某个元素,删除第二个元素
                   al.remove(1);
                   //修改Java动态数组,把新的元素放到第二个位置
                   al.add(1,"2");
                   //输出Java动态数组
         

    展开全文
  • JAVA动态数组

    2013-01-17 14:38:00
    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 1.语法:add()是添加一个新的...
  • //二、自定义数组(动态数组),比自带的数组功能更多,使用方法更灵活。//增删改查public class CustomizedArray {private int[] data;//存储数据 private int size;//数组中实际数据个数,和data.length不是一回事。...
  • java 动态数组

    2011-07-19 15:22:09
    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 1.语法:add()是添加一个新的...
  • 关于java动态数组你都了解多少呢?那么具体的来说java当中应该怎样使用动态数组呢?下面来看一下代码详例吧。首先我们要搞清楚,java动态数组是一种能够任意伸缩数组长度的对象,在java当中,我们经常使用的就是...
  • java 动态数组

    千次阅读 2010-03-25 22:00:00
    Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。 1.语法:add()是添加一个新的...
  • 数组的变量存储的内存地址3、动态数组:​由于数组的长度定义后不能改变,所谓“动态数组”是可以增加数组的长度,所以Java实现动态数组是改变数组变量指向不同的内存地址。本质并没有将数组的长...
  • java动态数组的应用

    2009-08-27 15:35:20
    java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组java动态数组
  • 小编典典不,一旦创建,就无法更改数组的大小。你要么必须分配比你认为需要的更大的大小,要么接受必须重新分配它的开销,这需要增加它的大小。这样做时,你将不得不分配一个新的数据,并将数据从旧数据复制到新数据...
  • Java中有着许多数组,但是也分别动态数组与静态数组,ArrayList 就是其中一个动态数组,下面就让我们来看看它有哪些概念及如何使用吧。一、ArrayList 是什么?ArrayList集合:又名动态数组,可以容纳任意长度,任意...
  • 动态数组Java实现思路:底层用一个固定长度的数组element来保存数据,每插入一个元素之前先判断一下size+1是否大于底层数组element的长度,如果大于,那么将生成一个大于原来数组长度两倍的数组,然后将原有数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,374
精华内容 5,349
关键字:

java动态数组

java 订阅