集合 LinkedList、ArrayList、Set、Treeset

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时传入了一个比较器 ,这个时候以比较器为标准。

  

 

原文地址:https://www.cnblogs.com/li-su-35/p/6171456.html