本帖最后由 小江哥 于 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> ):将集合中元素按照指定规则排序
可变参数
|