java集合类

第十五天知识点总结

一、LinkedList集合类

LinkedList中特有的方法:

1.方法介绍:

添加:

addFirst(E e); 添加在集合第一位的元素

addLast(E e); 添加在集合最后一位的元素

获取:

getFirst(); 获取集合中的第一个元素

getLast(); 获取集合中的最后一个元素

删除:

removeFirst(); 删除集合中的第一个元素

removeLast(); 删除集合中的最后一个元素

2.数据结构

1:栈(1.6)先进后出(栈的结构)

Push();

Pop();

2:队列(双端队列1.5) 先进先出

Offer();

Poll();

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

 descemdingIterator(); 返回逆序的迭代对象

二、Vector集合类

Vector:描述的是一个线程安全的ArrayList使用和ArrayList一样

需要了解的是

VectorArrayList的区别:

  相同点:VectorArrayList底层都是用object[]来实现

  不同点:1.ArrayList是线程不同步,操作效率高

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

          2.ArrayList是在 jdk1.2出现的,Vector是在 jdk1.0就有了。

三、Set集合类

  Set集合类 也是一个接口:继承Collection特点:无序的元素,不能重复。

hashSet存值的一个原理:

首先回调用对象的hashCode方法获取hashCode值,通过位移等运算获取一个位置。

情况1:如果位置上是没有元素,直接将元素存放在该位置

情况2:如果位置上已经有了元素,用对的的equals方法和位置上已经存在的对象作比较,如果equals返回的是true那就代表是重复对象,及局部村,如果返回的false将对象和原有的对象存在一起。

 

想要遍历Set集合:1.将集合变为数组2.通过迭代器来遍历(无序:添加的顺序和打印的顺序是不一样的。)

 四、TreeSet集合类

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

注意:你存进去的对象需要具备自然排序的特性。

TreeSet使用注意点:

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

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

     3.TreeSet添加对象的时候,如果对象本身不具备自然排序的特性,并且没有实现Comparable接口,那么这个时候就需要创建一个TreeSet的时候传入一个比较器。

比较器的定义方式:

   Class 类名 implements Compartor{

}

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

字符串的比较规则:

 1.获取字符串中的第一个值进行比较,通过自然排序比较,如果都是一样的就比较下一个值,还是一样在比较下一个,直到无法再比较   了,这时候就会比较字符串的长度。    

原文地址:https://www.cnblogs.com/lizixiansheng/p/6134723.html