---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
集合类中,每个容器对数据的存储方式不同,这个存储方式称为:数据结构
import java.util.*;
class Collection Demo
{
public static void main(String[] args)
{
ArrayList al=new ArrayList();//创建一个集合容器
al.add("java01");//添加元素
sop("size:"+al.size());//获取个数,集合长度
sop(al);//打印集合
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
1、add方法的参数类型是object,以便于接收任意类型对象
2、集合中存储的都是对象的引用(地址)
al.remove("java01");//删除元素
al.clear();//清空集合
sop("java01是否存在:"+al.contains("java01"));//判断元素
sop("集合是否为空?"+al.isEmpty());//集合是否为空
al1.retainAll(al2);//取交集,al1只会保留和al2中相同元素
al1.removeAll(al2);//去补集
元素的取出
public static void method_get()
{
ArrayList al=new ArrayList();
al.add("java01");
al.add("java02");
Iterator it=al.iterator();//获取迭代器,用于取出集合中的元素 迭代器:其实就是集合的取出元素的方式
whiel(it.hasnext())//判断是否还有元素
{
sop(it.next);
}
}
list:元素有序的,元素可以重复,因为该集合体有索引
特有的方法--凡是可以操作角标的方法都是该体系特有的方法
add(index,element);
remove(index);
set(index,element);
get(index);
list集合特有的迭代器,ListIterator是Iterator的子接口,在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生异常,所以在迭代时只能用迭代器的方法操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出,删除的操作,如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator,该接口只能通过List集合的ListIterator方法获取。
List
1、ArrayList:底层的数据结构使用的是数据结构,特点:查询速度很快,但是增删稍慢,线程不同步
2、LinkList:底层使用的是链表数据结构,特点:增删速度快,查询慢
3、Vector:底层是数组数据结构,线程同步
Set
Set集合功能和collection是一致的
常见子类HashSet:底层数据结构式哈希表
HashSst是如何保证元素的唯一性:通过元素的两个方法,hashCode和equals来完成,如果元素的HashCode值相同,才会判断equals是否为true,如果元素的HashCode值不同,才会调用equals
注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的HashCode和equals方法
学习心得:要先熟悉运用集合类Collection里主要的方法,才能更好地理解List和Set接口的其他方法操作,在以后的开发中灵活地应用。
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------