- 1、集合框架的简述
- 2、List集合
- 2.1、ArrayList实现类
- 2.2、linkedList实现了类
- 3、Set集合
- 4、Map集合框架
- 5、[jdk1.8中文api](https://blog.csdn.net/qq_45042462/article/details/114950677)
- Java集合框架提供了一套性能优良、使用方便的接口和类,它们为于java.util包中。存放在集合中的数据,被称为元素(element)。
- 集合框架:
- Collection接口存储一组不唯一,无序的对象;
- List接口存储一组不唯一,有序(索引顺序)的对象;
- Set接口存储一组唯一,无序的对象;
- Map接口存储一组键值对象,提供key到value的映射;
- key 唯一 无序
- value 不唯一 无序
List集合的主要实现类有ArrayList和linkedList,分别是数据结构中顺序表和链表的实现。另外还包括栈和队列的实现类:Deque和Queue。
- List
- 特点:有序,不唯一
- ArrayList
- 在内存中分配连续的空间,实现了长度可变的数组;
- 有点:遍历元素和随机访问效率比较高;
- 缺点:添加和删除需大量移动元素效率低,按照内容查询效率低;
- linkedList
- 采用双向链表存储方式;
- 缺点:遍历和随机访问元素效率低下;
- 优点:插入、删除元素效率比较高(前提要低效率查询)
代码演示
package Collection;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
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+",");
}
}
}
运行结果
代码演示
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+",");
}
}
}
运行结果
- Set
- 特点: 无序,唯一
- HashSet
- 采用Hashtable哈希表存储结构;
- 优点:添加速度快,查询速度快,删除速度快;
- 缺点:无序;
- linkedHashSet
- 采用哈希表存储结构,同时使用链表维护次序;
- 有序(添加顺序) ;
- TreeSet
- 采用二叉树的存储结构;
- 优点:有序,查询熟读比List快(按照内容查询);
- 缺点:查询熟读没有HashSet快;
- Map
- 特点: 存储的键值对映射关系,根据key可以找到value
- HashSet
- 采用Hashtable哈希表存储结构;
- 优点:添加速度快,查询速度快,删除速度快;
- 缺点:key无序;
- linkedHashMap
- 采用哈希表存储结构,同时使用链表维护次序;
- 有序(添加顺序) ;
- TreeMap
- 采用二叉树的存储结构;
- 优点:有序,查询熟读比List快(按照内容查询);
- 缺点:查询熟读没有HashSet快;



