1.java.util.ArrayList 集合数据存储的结构是数组结构。元素查找快,而增删就比较慢
所以如果要查询数据,遍历数据,ArrayList是最常用的集合
2.ArrayList是不同步的,所以效率高
3,我们都知道看一个类,先看它的构造方法
public ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。
参数:initialCapacity - 列表的初始容量 (*如果使用空参数,自动使用默认值)
抛出: IllegalArgumentException - 如果指定的初始容量为负

public ArrayList()构造一个初始容量为 10 的空列表。

public ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照该 collection 的迭代器返回它们的顺序排列的。
参数:c - 其元素将放置在此列表中的 collection (<?extends E>这是泛型的上限限定,不能用在创建对象时,只能用在传递参数时,表示实参接收时必须是E的子类或者本身。
抛出: NullPointerException - 如果指定的 collection 为 null

package collection;

import java.util.ArrayList;
import java.util.Iterator;

/*
 * 泛型的通配符:
 * ?:代表任意类型
 * 使用方式:
 * 		不能创建对象使用
 * 		只能作为方法参数使用
 */
public class Demo05Generic {
	public static void main(String[] args) {
		ArrayList<Integer> list01=new ArrayList<Integer>();//创建对象时表明类型,Integer类型
		list01.add(1);										//添加数据
		list01.add(2);
		ArrayList<String> list02=new ArrayList<String>();//String类型
		list02.add("zsh");
		list02.add("zms");
		printArray(list01);
		printArray(list02);
	}
	/*
	 * 定义一个方法,能够遍历所有类型的ArrayList集合
	 * 这时候不知道ArrayList集合使用什么数据类型,可以使用泛型的通配符
	 */
	public static void printArray(ArrayList<?> list)
	{
		Iterator<?> lt=list.iterator();	//Iterator:迭代器 (用来访问集合当中的元素,而不用暴露内部对象内部的表示。
		while(lt.hasNext())				//Iterator接口 是对Collention进行迭代的迭代器,所以用接口引用指向实现类的对象
		{								//hasNext方法用来判断集合的下一位是否还存在元素
			Object ob=lt.next();		//next()方法是用来去除当前的元素(类似c语言当中的指针,每判断一位,指针就后移一位)
			System.out.println(ob);
		}
	}

最后Java.ArrayList类中有很多方法,可以去Api文档查看

posted on 2020-05-09 15:28  凸凸大军的一员  阅读(58)  评论(0编辑  收藏  举报