一.什么是链表集合,通过图形来看,比如33只知道它下一个是55 如果:现在要删除33的话,就是把55赋值给45,这样看它操作集合速度会非常快. 二.LinkedList特有方法 1.添加 addFirst(); addLast(); jdk1.6 offerFirst(); offerLast();2.获取 getFirst();//获取但不删除,如果链表为空,抛出NoSuchElementException getLast(); jdk1.6 peekFirst();//获取但不删除,如果链表…
Java 集合框架 早在Java 2中之前,Java就提供了特设类.比如:Dictionary, Vector, Stack,  Properties 这些类用来存储和操作对象组. 虽然这些类都非常有用,但是它们缺少一个核心的,统一的主题.由于这个原因,使用 Vector 类的方式和使用 Properties类 的方式有着很大不同. 集合框架的设计成要满足以下几个目标. 该框架必须是高性能的.基本集合(动态数组,链表,树,哈希表)的实现也必须是高效的. 该框架允许不同类型的集合,以类似的方式工作…
今天主要是接触了集合的概念,集合简单意义上来说就是类对象的集合,我们一般用Collection 这个接口来表示,集合主要体系为: Collection |--List |--ArrayList |--Vector |--LinkedList |--Set |--HashSet |--TreeSet ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector 底层数据结构是数组,查询快,增删慢. 线程安全,效率低. LinkedList 底层数据结构是链表,查询慢…
集合的由来 数组的长度是固定的,当添加的元素超过了数组的长度,就需要对数组重新定义 java内部给我们提供的集合类,能存储任意对象,长度是可以改变的.随着元素的增加而增加,随着元素的减少而减少 数组和集合的区别 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值 集合只能存储引用数据类型(对象Object),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象  eg:int==>Integer 数组长度是固定的,不能自动增长 集合…
集合框架设计的目标: 高性能. 允许不同类型的集合,以类似的方式工作,有互操作性. 对一个集合的扩展和适应必须简单. 集合框架包含: 接口:代表集合的抽象数据类型. 实现(类):具体实现(ArrayList.LinkList.HashMap.Tree). 算法:实现集合接口的对象里的方法执行的一些有用的计算,如:搜索,排序. 集合框架体系图 集合接口: Collection:集合,代表一组object,Java不提供直接继承collection的类. List:有序Collection,便于查找…
Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对).即,Map元素总是成对出现的. Map中的value对象可以重复,但Key不能重复. Map接口的常用集合: 1.HashMap集合,HashMap类与HashSet类基本相同,都是无序的, 2.LinkedHashMap集合,存储数据是有序的. Map接口的常用方法: package Demo2;…
package cn.learn.collection; import java.util.LinkedList; import java.util.Queue; /* java.util.xxx ArrayList是接口List的实现类 -底层是数组,查询快,效率低,增删慢 add低层代码实际是原数组长度+1:由此生成新数组,再将内容复制进去 LinkedList是接口List的实现类 -底层是双向链表,增删快,查询慢 有很多特有的操作收尾元素,以及链栈的方法,不建议用多态 */ public…
LinkedList 底层结构:链表 1. API: 除了ArrayList中有的方法以外,LinkedList还有几个扩展方法 void addFirst(E e) 在该列表开头插入指定的元素. void addLast(E e) 将指定的元素追加到此列表的末尾. E getFirst() 返回此列表中的第一个元素. E getLast() 返回此列表中的最后一个元素. E removeFirst() 从此列表中删除并返回第一个元素. boolean removeFirstOccurrence…
如下一段代码,在JDK1.6的LinkedList中,是下图这样存储的.有一个节点值为null的节点,叫做header,header的next是0,3的next是header,这是一个循环链表 LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(0, 1, 2, 3)); 如果要从中取元素,LinkedList会判断这个元素的下标,是否小于size>>1,是则从0开始找,否则从3开始找 hea…
Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties) 以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collection),我们后面再讨论. 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在…
Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说将所操作的数据类型被指定为一个参数. 假定我们有这样一个需求:写一个排序方法,能够对整形.数组.字符串.数组甚至其他任何类型的数组进行排序,该如何实现? 答案是可以使用 Java 泛型. 使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序.然后,调用该泛型方法来对整型.数组.浮点数…
今天把java的学习重新拾起来,一方面是因为公司的项目需要用到大数据方面的东西,需要用java做语言 另一方面是原先使用的C#公司也在慢慢替换为java,为了以后路宽一些吧,技多不压身 此次的学习目标是: 低标:大学的那本java教材上的东西全部过一遍,知识点挖透 中标:能够学会使用maven.spring,做几个项目 高标:结合java,学会storm的基础知识(不知道这么说对不对..) 时间:2周(2017年2月16日-2017年3月2日) 目标可能有些高,本着OKR的原则... *** 本…
目录 LinkedList 源码学习 LinkedList继承体系 LinkedList核心源码 Deque相关操作 总结 LinkedList 源码学习 前文传送门:Java小白集合源码的学习系列:ArrayList 本篇为集合源码学习系列的LinkedList学习部分,如有叙述不当之处,还望评论区批评指正! LinkedList继承体系 LinkedList和ArrayList一样,都实现了List接口,都代表着列表结构,都有着类似的add,remove,clear等操作.与ArrayLis…
LinkedList链表: List接口的链接列表实现.允许存储所有元素(包含null).使用频繁增删元素. linkedList方法: void addFirst(E e) 指定元素插入列表的开头 void addLast(E e) boolean offerFirst(E e) 在此列表的开头插入指定的元素 boolean offerLast(E e) E getFirst() 返回此列表的第一个元素 E getLast() E removeFirst() 移除并返回此列表的第一个元素 E…
集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定,所以不适合做变化的需求,Java就提供了集合供我们使用. (2)集合和数组的区别? A:长度区别 数组固定 集合可变 B:内容区别 数组可以是基本类型,也可以是引用类型 集合只能是引用类型 C:元素内容 数组只能存储同一种类型 集合可以存储不同类型(其实集合一般存储的也是同一种类型) (3)集合的…
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中评选出四个最帅的武将,并存储下来 // 因为具备了面向对象的思想,所以创建四个对象来存储 Hero hero1 = new Hero("张飞", 18); Hero hero2 = new Hero("赵云", 16); Hero hero3 = new Hero(&q…
当你有很多书时,你会考虑买一个书柜,将你的书分门别类摆放进入.使用了书柜不仅仅使房间变得整洁,也便于以后使用书时方便查找.在计算机中管理对象亦是如此,当获得多个对象后,也需要一个容器将它们管理起来,这个容器就是集合. 集合本质是基于某种数据结构数据容器.常见的数据结构:数组(Array).集(Set).队列(Queue).链表(Linkedlist).树(Tree).堆(Heap).栈(Stack)和映射(Map)等结构.本文将为大家介绍Java中的集合. 一.集合概述 Java中提供了丰富的集…
集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能存储基本数据类型 Java的集合类库有一大一小两派,一大由Collection接口带领,一小由Map接口带领. 2. Collection接口 Collection接口下有两大分支,分别为List接口和Set接口.注意,Collection是接口,而Collections则是java.util包下的…
1.定义:集合是一种容器,专门用来存储对象 数组和集合的区别?   A:长度区别  数组的长度固定 集合长度可变 B:内容不同  数组存储的是同一种类型的元素  而集合可以存储不同类型的元素  C:元素的数据类型问题  数组可以存储基本数据类型,也可以存储引用数据类型 集合只能存储引用类型 2.集合的继承体系结构 由于需求不同,Java就提供了不同的集合类.这多个集合类的数据结构不同,但是它们都是要提供存储和遍历功能的,   我们把它们的共性不断的向上提取,最终就形成了集合的继承体系结构图.  …
集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4>链表结构 特点:增删快,查询慢 二.List接口 Java.util.List 接口(集合)extends Collection 接口 List接口的特点: 允许存储重复元素 是一个有序集合(存储元素的顺序和取出元素的顺序一致)存123 取出123 有索引,包含一些带索引的特有方法(有三种遍历方式:迭代…
类集简介 从JDK1.2开始Java引入了类集开发框架,所谓的类集指的就是一套动态对象数组的实现方案,在实际开发之中没有有何一项开发可以离开数组,但是传统的数组实现起来非常的繁琐.而且长度是其致命伤,正是因为长度的问题,所以传统的数组是不可能大范围使用的,但是我们的开发又不可能离开数组,所以最初就只能依靠一些数据结构来实现动态的数组处理,而其中最重要的两个结构:链表.树.但是面对这些数据结构的实现又不得不面对如下的一些问题: 数据结构的代码实现困难,对于一般的开发者是无法进行使用的: 对于链表和…
 集合框架(Collection  Framework)是Java最强大的子系统之一,位于java.util 包中.集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术.Java集合框架标准化了程序处理对象组的方式. 集合框架在设计上需要满足几个目标.首先,框架必须是高性能的.基本集合(动态数组.链表.树以及哈希表)的实现是高效率的.很少需要手动编写这些数据引擎中的某一个.其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性.再次,扩展或改造必须易于实现.为了满…
Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删除指定位置的元素 3.List的两个主要实现类是ArrayList和LinkedList (2)Arraylist 1.ArrayList底层是由数组实现的 2.动态增长,以满足应用程序的需求 3.在列表尾部插入和删除非常有效 4.更适合查找和更新元素 5.元素允许为null (3)List常用方法…
一.认识数据结构 1.数据结构有什么用? 合理的使用数据结构,可以更方便的查找存储数据. 2.常见的数据结构 数据存储常用结构有:栈.队列.数组.链表和红黑树. 栈:堆栈(stack),它是运算受限的线性表,限制只允许在表(栈顶)的一端进行插入和删除操作.特点是先进后出,栈的入口和出口都在栈的顶端. 队列:简称队(queue),它和堆栈一样都是运算受限的线性表,限制只允许在表一端插入,一端删除.特点是先进先出,队列出口和入口各占一侧. 数组:Array,是有序的元素序列.数组是在内存中开辟一段连…
数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速的查找某一个元素. 增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把原数组的数据复制过来 例: int[] arr = new int[]{1,2,3,4}; 要把数组索引是3的元素删除 必须创建一个新的数组,长度是原数组的长度-1 把原数组的其它元素…
集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致,在开发中一般当对象多的时候使用集合进行存储. 集合框架 JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用. 集合按照其存储结构可以分为两,分别是单…
随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里非常多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发经常使用 HashSet集合 .TreeSet集合 Set集合的元素是不反复且无序 一.HashSet集合 API文档解释:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持. 它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类同意使用null 元素. 此类为基本操作提供了稳定性能,注意.此实现不是同步的.…
Java 集合 LinkedList的ListIterator @author ixenos 摘要:ListIterator<E>是继承自Iterator<E>的接口.listIterator(int index)源码分析.利用ListItr实现的降序迭代 ListIterator<E>是继承自Iterator<E>的接口 故,ListIterator注意点: 1.迭代器不存储所有元素的引用,只有两个指针,一个指向上一个返回得到的元素,另一个下一个未涉足的元…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 12.0px Times } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Songti SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times } p.p4 { margin: 0.0px 0.0px 0.0px 0.0…