集合(collection):
使用存储实例的变长的容
容器名 存储的元素类型 长度
数组 基本和引用 定长
集合 引用 变长
集合的框架结构:
分为List 和 Set 子接口
List的实现类:ArrayList 和 LinkedList 和Vector
Srt的实现类: HashSet 和 TreeSet
和 LinkedHashSet
Map:
实现类: HashMap 和 LinkedHashMap
和 TreeMap
Collection接口:
Collection c=new ArrayList();
c.add();
List接口的存储特点:
元素添加的顺序是底层存储的顺序
不排重复
方法:
get(int index):根据下标返回对应值
add(int index,E e):在指定位置插入元素,后续元素会自动后移
set(int index,E e):替换指定的元素
ArrayList实现类的特点:
1.底层存储的元素使用的数据结构是数组;
2.优点:元素查询速度快
3.缺点:添加,修改,删除元素效率低
List e=new ArrayList();
e.add();
LiskedList实现类的特点:
1.底层元素使用数据结构是双向链表
2.优点:添加,修改.删除元素效率高
3.缺点:元素查询慢
Collections:
是一个工具类,用于操作List集合
与Arrays类似
Collection:是一个接口,是List,Set的父类
Set接口:
不能重复
HashSet实现类:底层存储的元素使用的数据结构是Hash表;
无序的(元素添加顺序与底层存储顺序不同)
Set elements =new HashSet();
elements.add("张三");
LinkedHashSet实现类:
底层存储的元素使用的数据结构是双向链表;
有序的(元素添加顺序与底层存储顺序相同)
排重
没有重新HashCode和equlas,会打印2个对象,重新后不能重复实例,只要new,就会在全新空间开辟存储空间存储实例
TreeSet实现类:
底层存储的元素使用的数据结构是二叉树;
有序的(根据升序排序(字典的顺序)),
排重
必须具备可比性
比较规则:实现Comprable接口,重写compreTo方法,返回0,与实例比较
Map集合:
元素以键值对存在(Key-value)
都是引用类型
无序的,底层存储的数据结构是hash表
根据键排除重复的,与值无关
HashMap实现类:
LinkedhashMap实现类:
TreeMap实现类:
weakHashMap实现类:
Map m=new HashMap();
m.put(1); //添加
m.clear(); //清除
boolean b=m.containsKey(1); //判断是否存在元素,返回true
boolean b=m.containsValue(Object value); //判断是否存在元素
Set< Map.Entry<K,V> >:将map集合所有的元素存放在set集合中
集合的遍历:
方法一:转为数组:toArray()
方法二:迭代器Iterator
每个Collection的实现类对象,都要实现iterator(),该方法表示获取该容器上的迭代器对象,相当于在容器上放游标,通过判断是否有下一个元素,获取。
hasNext()-->boolean,
next()-->E,
方法三:增强for循环
方法四:List特有:普通for循环:get(index)-->E
1、 在类集中存放单值的最大父接口是 Collection ,存放一对值的最大父接口是 Map
2、Set 接口保存的数据是不允许重复的,并且 TreeSet 子类是可以排序的,根据 Comparable接口
3、 Java类集可以使用的输出方式是: Iterator 、 ListIterator 、 Enumeration 、 foreach
4、 在Java中实现栈操作的类是Stack
3、 Set集合中的内容是不允许重复的,Java依靠什么来判断重复对象?
答: Java依靠Object类中的hashCode()和equals()方法来判断重复对象。
4、 TreeSet类是允许排序的,Java依靠什么进行对象的排序操作?
答: 在TreeSet类中依靠Comparable接口来进行排序。
5、 简述Collection和Collections的区别。
答: Collection是一个接口,用于定义集合操作的标准、Collections是一个工具类,可以操作任意的集合对象。