黑马程序员——集合框架的构成和分类


------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
  1. List接口和Set接口

    List特点:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。

    Set特点:元素不能重复,无序。

     

    List特有常见方法:有一个共性特点就是都可以操作角标。


  1. 添加

    void add(index,element);

    void add(index,collection);

  2. 删除

    Object remove(index);

  3. 修改

    Object set (index,element);

  4.  获取

    Object get(index);

    int indexOf(object);

    int lastIndexOf(object);

    List subList(form,to);

    在迭代器过程中,不要使用集合操作元素,容易出现异常。可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作。

     

    ListIterator可以实现在迭代过程中完成对元素的增删改查。注意:只有List集合具备该迭代功能。

     

     

    List接口常用子类:


  1. Vector:内部是数组的数据结构,是同步的。增删,查询都很慢。

  2. ArrayList:内部是数组的数据结构,是不同步的。查询的速度快。

  3. LinkedList:内部是链表数据结构,是不同步的。增删元素的速度非常快。







Set:元素不可以重复,是无序的。Set接口中的方法和Collection一致

HashSet:内部数据结构是哈希表,是不同步的。拥有稳定的性能。

哈希算法原理:对元素进行运算,并获取位置。

 

哈希表确定元素是否相同,

  1. 判断的是两个元素的哈希值是否相同。如果相同,在判断两个对象的内容是否相同。

  2. 判断的哈希值相同,其实判断的是对象的hashCode的方法。判断内容相同,用的是equals方法。

    注意:如果哈希值不同,是不需要判断equals

     

    TreeSet:可以对Set集合中的元素进行排序。是不同步的。判断元素的唯一性的方式:就是根据比较方法的返回结果是否是0,就是相同,不存储。

     

    TreeSet对元素进行排序的方式一:

           让元素自身具备比较功能,元素需要实现Comparable接口,覆盖compareTo方法。

    如果不要按照对象中具备的自然顺序进行排序。如果对象中不具备自然顺序。

    可以使用TreeSet集合第二种排序方式二:

    让集合自身具备比较功能,定义一个类实现Comparator接口,覆盖compare方法。将该类对象作为参数传递给TreeSet集合的构造函数。

     

    TreeSet底层用二叉树算法来实现的。

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值