【Java Learning】泛型类ArrayList 的用法介绍
2016-05-18 00:14
603 查看
泛型类ArrayList 的用法介绍
学过C++的人都知道,C++中的vector容器是一个非常有用的工具,与之类似,Java中有一个Vector类,不过它用得很少,我们更青睐于功能更加强大泛型类ArrayList.
为何而生?在程序设计中,有时候我们需要定义一个数组,但却不确定数据的大小,在Java中我们可以通过new方法来定义,如:
学过C++的人都知道,C++中的vector容器是一个非常有用的工具,与之类似,Java中有一个Vector类,不过它用得很少,我们更青睐于功能更加强大泛型类ArrayList.
为何而生?在程序设计中,有时候我们需要定义一个数组,但却不确定数据的大小,在Java中我们可以通过new方法来定义,如:
public void setSpace(int actualSize) { int[] array=new int[actualSize]; //....... }不过,用new方法也有缺点,一旦用new方法创建了数组,想要在改变其大小就不容易了,针对这个问题,Java提供ArrayList类,它使用起来和数组有点像,但是强大很多,在添加和删除元素的时候,可以自动调节数组的容量而无需任何代码。ArrayList是一个采用类型参数(type parameter)的泛型类(generic class),其存储的元素为类对象,为了指明对象类型,需要采用一对尖括号将类名括起来,由于尖括号形似菱形,故这种表达方法称为“菱形语法”。一些常用的方法列举如下:
public static void main(String[] args) { //1构造一个空数组列表ArrayList<T>(),可赋予存储能力,但不能分配空间 ArrayList<Integer> temp1=new ArrayList<Integer>();//存储能力未知 ArrayList<Integer> temp2=new ArrayList<Integer>(5);//存储能力为5,但可以改变 ArrayList<ArrayList<Integer>> temp3=new ArrayList<ArrayList<Integer>>(); //2虽然用new操作符为数组列表temp2赋予了容量,但它们的输出都为0 System.out.println(temp1.size());//输出0 System.out.println(temp2.size());//输出0 System.out.println(temp3.size());//输出0 //3初始化temp2,其空间将增大为10,这个数字可随意设置 for(int i=0;i<10;i++) temp2.add(0); System.out.println(temp2.size());//输出15 //4二维数组列表temp3的初始化方式,借助一维数组列表初始化 int length=8;//控制二维数组列表行数 for(int i=0;i<length;i++) temp3.add(temp2); System.out.println(temp3);//输出8行10列的0数组 //5访问数组列表元素 System.out.println(temp2.get(5));//访问一维数组列表temp2第6个元素 System.out.println(temp3.get(5).get(5));//访问二维数组列表temp3第6行6列的元素 //6设置数组列表元素 System.out.println(temp2.set(5, 100));//设置一维数组列表temp2第6个元素为100 System.out.println(temp3.get(5).set(5, 200));//设置二维数组列表temp3第6行6列的元素为200 //7删除数组列表元素 temp2.remove(5); System.out.println(temp2.get(5));//输出0 //8检查数组列表中是否存在指定元素(对象)contains(Object o) temp2.set(6, 123); System.out.println(temp2.contains(123));//输出true }
相关文章推荐
- 【代码笔记】Java学习一阶段总结
- Java数据库
- MyEclipse连接Mysql数据库的方法(一)
- 如何在Java程序中访问mysql数据库中的数据并进行简单的操作
- 可视化日历【Java,有详细的注释】
- XML格式文本 与 JavaBean 相互转换
- 数学公式计算 结合 JavaBean
- 使用Java为图片添加水印
- Java处理数学公式得出结果
- 【java】Date、String、Calendar类型之间的转化
- Java ClassLoader原理
- dao设计模式
- javaBean
- 内置对象
- springmvc-json小案例
- java创建线程的三种方式(学习笔记)
- 使用POI分割纯文本Excel文件 支持XLSX\XLS
- java服务端模拟form传送文件
- spring捡漏
- Js编码和Java后台解码