黑马程序员技术交流社区
标题: 集合总结(上) [打印本页]
作者: 小江哥 时间: 2018-8-25 14:50
标题: 集合总结(上)
本帖最后由 小江哥 于 2018-8-25 14:57 编辑
知识点总结Collection:集合的顶层接口,定义了集合中通用的功能方法
常用方法:
boolean add(Object e) 把给定的对象添加到当前集合中
void clear() 清空集合中所有的元素
boolean remove(Object o) 把给定的对象在当前集合中删除
boolean contains(Object o) 判断当前集合中是否包含给定的对象
boolean isEmpty() 判断当前集合是否为空
Iterator iterator() 迭代器,用来遍历集合中的元素的
int size() 返回集合中元素的个数
Object[] toArray() 把集合中的元素,存储到数组中
Iterator: 迭代器
Object next()返回迭代的下一个元素
boolean hasNext()如果仍有元素可以迭代,则返回 true。
增强for
简化数组和Collection集合的遍历
格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
好处:简化遍历
泛型: 用来约束数据的数据类型
泛型的格式:
<数据类型>
泛型可以使用在 类,接口,方法上
泛型的好处
A:将运行期遇到的问题转移到了编译期
B:省去了类型强转的麻烦
泛型高级(通配符):
泛型通配符<?>
泛型类型不确定时,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
<? extends E>
向上限定,E及其子类
? extends Animal
? 代表的就是Animal类本身或者是Animal类的子类
<? super E>
向下限定,E及其父类
? super Animal
? 代表的就是Animal类本身或者是Animal类的父类
知识点总结数据结构
1:栈 特点 先进后出 出口入口同一侧
2:队列 特点 先进先出 出口入口两侧
3:数组结构 特点 查询快 增删慢
4:链表结构 特点 查询慢 增删快
5:红黑树(二叉树)增快 迭代效率
6:哈希表 保证元素唯一
List与Set集合的区别?
List:
它是一个有序的集合(元素存与取的顺序相同)
它可以存储重复的元素
有索引 可以精准定位元素
Set: 唯一
它是一个无序的集合(元素存与取的顺序可能不同)
它不能存储重复的元素
没有索引,不能精准定位
List集合中的特有方法
void add(int index, E element) 将指定的元素,添加到该集合中的指定位置上
E get(int index)返回集合中指定位置的元素。
E remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
E set(int index, E element)用指定元素替换集合中指定位置的元素,返回值的更新前的元素
ArrayList:
底层数据结构是数组,查询快,增删慢
LinkedList:
底层数据结构是链表,查询慢,增删快
HashSet:
元素唯一,不能重复
底层结构是 哈希表结构
元素的存与取的顺序不能保证一致
如何保证元素的唯一的?
重写hashCode() 与 equals()方法
LinkedHashSet:
元素唯一不能重复
底层结构是 哈希表结构 + 链表结构
元素的存与取的顺序一致
Collections中的方法:
public static <T> void sort(List<T> list) 排序
public static void shuffle(List<?> list) 集合中的元素存储位置随机打乱
public static <T> void sort(List<T> list):将集合中元素按照默认规则排序。
public static <T> void sort(List<T> list,Comparator<? super T> ):将集合中元素按照指定规则排序
可变参数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |