概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework).Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率. 为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一…
Collections    集合框架的工具类    着重讲解以下方法: 1.sort(): 1º根据元素的自然顺序对指定列表按升序进行排序,列表中的所有元素都必须实现comparable接口. public static <T extends Comparable<? super T>> void sort(List<T> list) 2º根据指定比较器产生的顺序对指定列表进行排序.此列表内的所有元素都必须可使用指定比较器相互比较. public static <…
一.概述 Set是一种没有重复元素的集合,它所有的方法都是直接继承自Collection接口,并且添加了一个对重复元素的限制.Set要求强化了equals和hashCode两个方法,以使Set集合可以对元素进行排序和对比. 二.子接口 Set中没有新添方法,而是在子接口SortedSet和NavigableSet中拓展了一些功能 修饰符和返回值 方法名 描述 端点操作 E first() 返回当前集合第一个元素(低位),没有时抛出异常 E last() 返回当前集合最后一个元素(高位),没有时抛…
1.HashMap特点 存放的元素都是键值对(key-value),key是唯一的,value是可以重复的 存放的元素也不保证添加的顺序,即是无序的 存放的元素的键可以为null,但是只能有一个key为null,可以有多个value为null(前提是存放的是HasHap对象) 如果新添加的元素的键(key)在集合中已经存在,自动将新添加的值覆盖到原有的值 2.底层实现 HashMap的底层使用的是Node对象数组; HashMap源码 transient Node<K,V>[] table;…
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 在实际项目中LinkedList也是使用频率非常高的一种集合,本博客将从源码角度带领大家学习关于LinkedList的知识. 一LinkedList类的定义: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Seri…
参考http://how2j.cn/k/collection/collection-linkedlist/370.html LinkedList 与 List接口 与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法. 详细使用,请参考java集合框架之ArrayList,在此不作赘述.接下来要讲的是LinkedList的一些特别的地方 双向链表 - Deque 除了实现了List接口外,LinkedList还实现了双向链表结构D…
链表(LinkedList) 数组(array)和数组列表(ArrayList)都有一个重大的缺陷: 从数组的中间位置删除一个元素要付出很大的代价,因为数组中在被删除元素之后的所有元素都要向数组的前端移动一个位置(最坏的情况是:删除数组的第一个元素).在数组中间的某个位置插入一个元素也是类似的后果(最坏的情况是:在数组的头部插入一个元素). Java中链表的实现方案,实现了Iterator接口的LinkedList集合类如何遍历和删除元素呢?不需要像c语言那样使用复杂的指针,非常简单,代码如下:…
Java集合框架之LinkedList浅析 一.LinkedList综述: 1.1LinkedList简介 同ArrayList一样,位于java.util包下的LinkedList是Java集合框架的重要组成成员之一,LinkedList在jdk1.8中的定义如下:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Clonea…
三.链表 —— LinkedList ArrayList 虽然好用,但是数组和数组列表都有一个重大的缺陷:从数组的中间位置删除一个元素要付出很大的代价,其原因是数组中处于被删除元素之后的所有元素都要向数组的前端移动.但是,具有链表结构的 LinkedList 则没有这个问题. LinkedList 的底层结构是类似数据结构里边的双向链表,可以代价比较小地实现元素的增加和删除. LinkedList 有一个如上图的内部类,这个类就是实现了双向链表的功能. 1.构造方法 LinkedList() C…
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作.Java提供了几个能有效地组织和操作数据的数据结构,这些数据结构通常称为Java集合框架.在平常的学习开发中,灵活熟练地使用这些集合框架,可以很明显地提高我们的开发效率,当然仅仅会用还是不够的,理解其中的设计思想与原理才能更好地提高我们的开发水平.下面是自己对Java集合框架方面的学习总结. 一.概述 二.Collection接口 1.List 2.Set 3.Queue 三.Map接口 1.HashMap实…