java基础之集合类

时间:2023-02-15 00:12:03

一、Java集合类是什么?java集合类型主要有哪些?

首先看一张概念图,这里囊括了集合类的大部分关系及内容
java基础之集合类
集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。
通俗地讲,集合类就是把一些对象的引用放在一起(特别是我们需要存放一些数据却不知道个数的情况下),便于我们直接从集合中使用这些引用。通常来说,集合内所包含的引用,都是具有某种特性。
集合类型主要有3种:set(集)、list(列表)和map(映射)。

二、set、list和map的区别有哪些?
用一个表格总结一下

List和Set是继承了Collection接口,List有序且允许元素重复,Set不允许元素重复。ArrayList、LinkedList和Vector是List的三个主要的实现类,HashSet和TreeSet是Set的两个主要的实现类。
Map则是与List和Set有所不同,区别就在于Map是键与值之间的关系,而其中的键我们就可以看做是一个集合。其中的键是必须唯一的,而值可以重复。

三、详细解析

1、Collection常用方法

  Collection coll=new ArrayList();  
Collection coll2=new ArrayList();
Object[] a = {new Integer(1)};
//单元素操作
boolean b = coll.add("123");//添加元素
boolean b1 = coll.remove("123");//删除元素
//查询操作
int i = coll.size();//返回当前集合中元素的数量
boolean b2 = coll.isEmpty();//判断集合中是否有任何元素
boolean b3 = coll.contains("123");//查找集合中是否含有对象"123"
Iterator ite = coll.iterator();//返回一个迭代器,用来访问集合中的各个元素
//组操作
boolean b4 = coll.containsAll(coll2);//查找集合中是否含有集合coll2中所有元素
boolean b5 = coll.addAll(coll2);//将集合coll2中所有元素添加给该集合
coll.clear();//删除集合中所有元素
boolean b6 = coll.removeAll(coll2);//从集合中删除集合coll2中的所有元素
boolean b7 = coll.retainAll(coll2);//从集合中删除集合coll2中不包含的元素
//Collection转换为Object数组
Object[] obj = coll.toArray();//返回一个内含集合所有元素的array
//返回一个内含集合所有元素的array。运行期返回的array和参数a的型别相同,需要转换为正确型别。
Object[] obj1 = coll.toArray(a);

2、List的常见用法

List普通用法:

    List list = new ArrayList();  
//添加元素
list.add(1);
//在2处添加元素
list.add(2, 1);
//添加集合
list.addAll(new ArrayList());
//在3处添加集合
list.addAll(3,new ArrayList());
//取得1处的元素
Object obj = list.get(1);
//返回对象"1"第一次出现的位置,没有则为-1
int i= list.indexOf(1);
//返回对象"1"最后一次出现的位置,没有则为-1
int j= list.lastIndexOf(1);
//删除2位置的元素
list.remove(2);
//将1处的对象改为"2"
list.set(1, 2);

List特殊用法:

  List list = new ArrayList();  
//返回一个列表迭代器,用来访问列表中的元素
ListIterator listIterator = list.listIterator();
//返回一个列表迭代器,用来从指定位置2开始访问列表中的元素
ListIterator listIterator2 = list.listIterator(2);
//从1(包含)到2(不包含)范围中各个元素的列表视图
List subList = list.subList(1, 2);

LinkedList的特殊用法:

    //构建一个空的链接列表 
LinkedList list = new LinkedList();
//构建一个空的链接列表,并且添加集合list的所有元素
LinkedList list1 = new LinkedList(list);
//将对象1加到列表开头,addLast()加到最后
list.addFirst(1);
//获得第一个元素,getLast()获得最后一个元素
Object obj = list.getFirst();
//移除第一个元素,removeLast()移除最后一个元素
list.removeFirst();

ArrayList的特殊用法:

  ArrayList list = new ArrayList();  
//将ArrayList对象容量增加5
list.ensureCapacity(5);
//整理ArrayList对象容量为列表当前大小,程序可使用这个操作减少ArrayList对象存储空间.
list.trimToSize();