LinkedList中特有的方法:

1:方法介绍

addFirst(E e)

addLast(E e)

getFirst()

getLast()

removeFirst()

removeLast()

如果集合中没有元素,获取或者删除元

素抛:NoSuchElementException : 没有找到元素的异常

2:数据结构  : 可用来描述栈结构存储数据

1:栈 (1.6)

先进后出  :栈的结构

push()

pop()

2:队列(双端队列1.5)

先进先出

offer()

poll()

3:返回逆序的迭代器对象

descendingIterator()   返回逆序的迭代器对象

Vector  :用来描述线程安全的ArrayList  和ArrayList 的使用一样  只是线程更安全一些

Vector 和Arrays 的区别

相同点:vector 和ArrayList底层 都是通过Object数组来实现的

不同点:

  1. ArrayList   线程不同步  操作效率高

Vector  线程是同步的  操作效率低

  1. ArrayList 是在jdk1.2 出现的,vector  是在jdk1.0 就有了

Set集合  也是一个集合:继承Collection接口  特点:是无序的 、元素不能重复 元素不能用下标取得

TreeSet :使用元素的自然顺序对元素进行排序,底层使用二叉树实现

Treeset 使用注意点:

1.往treeSet添加对象的时候,如果对象有这个自然排序的特性,就按照这个自然排序进行排序

2.往TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,运行的时候直接报错,如果需要存储对象,那么对象的类必须要实现comparable 接口   把元素的比较的规则定义在comparato 方法中

3.往TreeSet 添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现comparable  接口 ,那么这个时候需要创建一个TreeSet的时候传入一个比较器,并且实现public int compare(Object o1, Object o2) 方法

比较器的定义方式:

class 类名 implements Compartor{

}

实现compare方法

public int compare(Object o1, Object o2) {

TODO Auto-generated method stub

o1 o2 集合中的对象  : book

//定义比较的规则。

Book b1 = (Book)o1;

Book b2 = (Book)o2;

return b1.id - b2.id;

}

4.如果类中实现了Comparable 接口  又在创建TreeSet时传入了一个比较器 ,这个时候以比较器为标准。

集合 LinkedList、ArrayList、Set、Treeset的更多相关文章

  1. Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. java集合之ArrayList,TreeSet和HashMap分析

    java集合是一个重点和难点,如果我们刻意记住所有的用法与区别则是不太现实的,之前一直在使用相关的集合类,但是没有仔细研究区别,现在来把平时使用比较频繁的一些集合做一下分析和总结,目的就是以后在需要使 ...

  3. Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

    概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...

  4. 集合框架-ArrayList,Vector,Linkedlist

    // ClassCastException 报错,注意,千万要搞清楚类型 * Vector的特有功能: * 1:添加功能 * public void addElement(Object obj) -- ...

  5. List集合与Set集合(ArrayList,LinkedList,Vector,HashSet,LinkedHashSet,可变参数)

    List集合介绍及常用方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; /* java. ...

  6. JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习

    JAVA之旅(十九)--ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习 关于数据结构,所讲的知识 ...

  7. LinkedList ArrayList 比较

    小结: 1.不是同步的,多线程情况下的处理 List list = Collections.synchronizedList(new LinkedList(...)); 2. 快速失败.并发修改异常 ...

  8. Java基础-集合框架-ArrayList源码分析

    一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...

  9. C#语言基础——集合(ArrayList集合)

    集合及特殊集合 集合的基本信息: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...

  10. C#集合之ArrayList

    C#中之所以有集合这个东东,是因为数组的长度是固定的,而实际需求是,不确定未来这个“数组”的个数,故出现集合这个概念,因为集合的容量会随元素的增加曾倍数增长.C#中有2类常用集合:ArrayList, ...

随机推荐

  1. mysql更新密码

    mysql -u root mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE us ...

  2. 架构师养成记--11.Executor概述

    常用方法 Executors.newFiexdPool(int nThreads);固定线程数量的线程池: Executors.newSingleThreadExecutor();单个线程的线程池: ...

  3. 【Android群英传】学习笔记(三·一)

    本篇笔记中,笔者将记录在ListView的使用的技巧 虽然5.X时代,RecyclerView在很多地方都在逐渐取代ListView,但ListView的使用范围还是很广泛的,它这万年老大哥的地位也不 ...

  4. Bzoj1076 [SCOI2008]奖励关

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1935  Solved: 1053 Description 你正在玩你最喜欢的电子游戏,并且刚刚进入一 ...

  5. Emotion Debt 2017/1/6

    原文 We can't move beyond the past until our emotional debts are paid. Many people today live under th ...

  6. css权威指南学习笔记 —— css选择器

    1,选择器:选择器的一些基本常用规则基本都记得,w3c上都有,平时也常用,不常用的一些后代选择器经常就忘记了.一些归纳一下后代选择器,加深一下印象: a:子选择器:   p>a  a是直接是p的 ...

  7. linux 基础命令与文件管理

      Linux终端介绍 Shell提示符 Bash Shell基本语法 基本命令的使用:ls.pwd.cd 查看系统和BIOS硬件时间 Linux如何获得帮助 Linux关机命令:shutdow.in ...

  8. 使用django开发博客过程记录5——日期归档和视图重写

    针对每条博客的观看次数我么是使用django的Mixin实现的: def get(self, request, *args, **kwargs): last_visit = request.sessi ...

  9. Yii2 定时任务创建(Console 任务)

    Yii2的定时任务可以有两种写法,原理都是通过服务器的定时任务去调用 1.通过调用指定的URL访问 就相当于在浏览器中访问 2.通过console调用 下面我们就来说说Console 是如何实现定时任 ...

  10. runtime-给系统已有类添加属性

    在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种.类目(category)可以给系统已有类添加扩展方法但是不能添加属性,并且被添 ...