文章目录
- 1、集合框架的简述
- 2、List集合
- 3、Set集合
- 4、Map集合框架
- 5、[jdk1.8中文api](https://blog.csdn.net/qq_45042462/article/details/114950677)
1、集合框架的简述
- Java集合框架提供了一套性能优良、使用方便的接口和类,它们为于java.util包中。存放在集合中的数据,被称为元素(element)。
- 集合框架:
- Collection接口存储一组不唯一,无序的对象;
- List接口存储一组不唯一,有序(索引顺序)的对象;
- Set接口存储一组唯一,无序的对象;
- Map接口存储一组键值对象,提供key到value的映射;
- key 唯一 无序
- value 不唯一 无序
2、List集合
List集合的主要实现类有ArrayList和linkedList,分别是数据结构中顺序表和链表的实现。另外还包括栈和队列的实现类:Deque和Queue。
- List
- 特点:有序,不唯一
- ArrayList
- 在内存中分配连续的空间,实现了长度可变的数组;
- 有点:遍历元素和随机访问效率比较高;
- 缺点:添加和删除需大量移动元素效率低,按照内容查询效率低;
- LinkedList
- 采用双向链表存储方式;
- 缺点:遍历和随机访问元素效率低下;
- 优点:插入、删除元素效率比较高(前提要低效率查询)
2.1、ArrayList实现类
代码演示
package Collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/*
使用ArrayList存储多个学生分数(不唯一,索引有序)
数组中可以放基本类型,也可以放引用类型
集合中只能放引用类型,不能放基本类型
*/
public class collection01 {
public static void main(String[] args) {
//创建一个集合对象
List l1=new ArrayList();
//添加元素
l1.add(60); //在末尾添加
l1.add(70);
l1.add(80);
l1.add(1,50); //指定的索引添加元素
//获取指定索引的元素
int element1=(int)l1.get(0);
//遍历元素
System.out.println(l1.toString());
//for循环
for (int i = 0; i < l1.size(); i++) {
int element2=(int) l1.get(i);
System.out.print(element2+",");
}
System.out.println();
//for——each循环
for(Object o:l1){
System.out.print(o+",");
}
System.out.println();
//Iterator迭代器
Iterator i1= l1.iterator() ;
while(i1.hasNext()){ //hasNext方法判断是否有下一个元素
int element3=(int) i1.next(); //next方法取下一个元素的值
System.out.print(element3+",");
}
}
}
运行结果
2.2、LinkedList实现了类
代码演示
package Collection;
import java.util.Iterator;
import java.util.LinkedList;
public class collection02 {
public static void main(String[] args) {
//创建一个集合对象
LinkedList l1=new LinkedList(); //这里没有使用多态,因为LinkedList有自己的方法
//添加元素
l1.add(60); //在末尾添加
l1.add(70);
l1.add(80);
l1.add(1,50); //指定的索引添加元素
//获取指定索引的元素
int element1=(int)l1.get(0);
//遍历元素
System.out.println(l1.toString());
//for循环
for (int i = 0; i < l1.size(); i++) {
int element2=(int) l1.get(i);
System.out.print(element2+",");
}
System.out.println();
//for——each循环
for(Object o:l1){
System.out.print(o+",");
}
System.out.println();
//Iterator迭代器
Iterator i1= l1.iterator() ;
while(i1.hasNext()){ //hasNext方法判断是否有下一个元素
int element3=(int) i1.next(); //next方法取下一个元素的值
System.out.print(element3+",");
}
}
}
运行结果
3、Set集合
- Set
- 特点: 无序,唯一
- HashSet
- 采用Hashtable哈希表存储结构;
- 优点:添加速度快,查询速度快,删除速度快;
- 缺点:无序;
- LinkedHashSet
- 采用哈希表存储结构,同时使用链表维护次序;
- 有序(添加顺序) ;
- TreeSet
- 采用二叉树的存储结构;
- 优点:有序,查询熟读比List快(按照内容查询);
- 缺点:查询熟读没有HashSet快;
4、Map集合框架
- Map
- 特点: 存储的键值对映射关系,根据key可以找到value
- HashSet
- 采用Hashtable哈希表存储结构;
- 优点:添加速度快,查询速度快,删除速度快;
- 缺点:key无序;
- LinkedHashMap
- 采用哈希表存储结构,同时使用链表维护次序;
- 有序(添加顺序) ;
- TreeMap
- 采用二叉树的存储结构;
- 优点:有序,查询熟读比List快(按照内容查询);
- 缺点:查询熟读没有HashSet快;