前言

  如果数组的大小要随时间变化,那么数组操作起来就比较麻烦。

  在C++中,这种情况要用到动态向量Vector。

  而Java中,提供了一种叫做ArrayList的泛型数组结构类型,提供相似的作用。

  其实都是一种东西,只是在使用上面有那么一点区别。

  本文将讲解ArrayList的具体使用方法。

ArrayList常用方法

  先要做如下说明:

    1. 因为 Java 不支持运算符的重载,所以不支持下标运算符,无法使用[]运算符来存取元素。

    2. ArrayList成员必须是对象类型(泛型不支持基本类型)。也就是int,float这些不能作为成员。如果要使用这些基本类型,必须使用其对象表达方式。(下文会讲解转换技巧)

  // 构造一个空数组列表

  ArrayList <T> ();

  // 设置数组列表指定位置的元素值

  void set (int index, T obj);

  // 获取数组列表指定位置的元素值

  T get (int index);

  // 删除一个元素

  T remove (int index);

  // 往数组列表里添加元素

  boolean add (T obj);

  // 往数组列表的指定位置插入元素

  void add (int index, T obj);

  // 获取当前容量

  int size();

示例代码

 package test;

 import java.util.ArrayList;

 public class Java7Learn {

     public static void main(String[] args){

         // 测试数组
int [] a = {1, 3, 5, 7, 9}; // 创建ArrayList并赋值
ArrayList<Integer> array = new ArrayList<Integer>();
for (int i:a) {
array.add(i);
} // 打印结果
for (int i:array) {
System.out.print(i);
System.out.print(" ");
}
System.out.println(); // 将第一个元素设置为9
array.set(0, 9); // 删除第3个元素
array.remove(2); // 再打印结果
for (int i:array) {
System.out.print(i);
System.out.print(" ");
}
System.out.println();
}
}

运行结果

  

小结

  没什么多讲的,多用几次就会了。

  

  

动态数组 - ArrayList的更多相关文章

  1. 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解

    数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...

  2. [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)

    [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习) 在C#中,存在常见的九种集合类型:动态数组ArrayList.列表List.排序列表SortedList.哈希表HashTa ...

  3. C#动态数组ArrayList和List<T>的比较

    C#中一维动态数组(即列表)分ArrayList和List<T>两种,其容量可随着我们的需要自动进行扩充 一.ArrayList类(少用) ArrayList位于System.Collec ...

  4. 关于C#中的动态数组ArrayList

    在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 一.ArrayList类与Array类的区别 ArrayList类实 ...

  5. C#动态数组ArrayList

    在C#中,如果需要数组的长度和元素的个数随着程序的运行不断改变,就可以使用ArrayList类,该类是一个可以动态增减成员的数组. 一.ArrayList类的常用属性和方法 1. ArrayList类 ...

  6. C# 集合类(一)动态数组ArrayList

    C# 集合类自己经常用到: 数组(Array).动态数组(ArrayList).列表(List).哈希表(Hashtable).字典(Dictionary),对于经常使用的这些数据结构,做一个总结,便 ...

  7. 动态数组ArrayList的使用

    1.定义类 package com.realhope.rmeal.bean; /** * * @author Wucy * 菜谱类 */ public class Menu{ private Inte ...

  8. C#深入研究ArrayList动态数组自动扩容原理

    1 void Test1() { ArrayList arrayList = new ArrayList(); ; ; i < length; i++) { arrayList.Add(&quo ...

  9. 常用数据结构-线性表及Java 动态数组 深究

    [Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In compu ...

随机推荐

  1. loadrunner 参数化数据更新方式

    数据分配方式: Select next row[选择下一行]: 顺序(Sequential):按照参数化的数据顺序,一个一个的来取. 随机(Random):参数化中的数据,每次随机的从中抽取数据. 唯 ...

  2. CPU信息查询

    cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l //查看CPU的个数 cat /proc/cpuinfo |grep ...

  3. git常用语法

    git笔记  1.     获取项目(克隆):     Git repository:                       git clone -b develop ssh://git@68. ...

  4. CI 目录下放置index.html,防止直接访问

    CI 目录下放置index.html,防止直接访问

  5. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '57x57' pixels

    遇到这个问题问题,搜索了一圈要么不知道,要么喊改deploymenet target, 最后我是在项目属性-info-icon files(ios5)-下面添加了一个icon,然后弄了个icon.pn ...

  6. Android Phonebook编写联系人UI加载及联系人保存流程(六)

    2014-01-07 11:18:08 将百度空间里的东西移过来. 1. Save contact 我们前面已经写了四篇文章,做了大量的铺垫,总算到了这一步,见证奇迹的时刻终于到了. 用户添加了所有需 ...

  7. C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝

    关键词:构造函数,浅拷贝,深拷贝,堆栈(stack),堆heap,赋值运算符摘要:    在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作.    如果对象在申明的同时马上进行的初始化操作 ...

  8. bitmapData

    一些常用接口: clone(): 得到位图数据的拷贝: 用途:深复制位图 draw(source :IBitmapDrawable...): source 要绘制到 BitmapData 对象的显示对 ...

  9. 传Windows 9预览版今秋发布

    据ZDNet长期关注微软动态的资深人士玛丽•乔•弗利(Mary Jo Foley)称,Windows 9预览版将会在9月或者10月推出.按照这一进度,代号为“Threshold’”的Windows 9 ...

  10. 《J2EE,J2SE,J2ME》

    J2EE(Java EE)是做企业级应用的.比如,163邮箱,比如某公司的管理系统 J2SE(Java SE)就是Java语言的标准版本,类似于C++,主要做桌面软件,比如Eclipse,MyEcli ...