[Java]集合框架中值得注意的点

  • Collection接口中的iterator方法返回Iterator接口的一个实例,使用:
    next()方法顺序访问集合中的元素
    hasNext()方法检测迭代器中是否还有更多的元素
    remove()方法删除从迭代器返回的最后一个元素

  • HashSet中的元素无特定顺序。
    要加顺序使用LinkedHashSet,可按照元素插入Set的顺序提取;
    强加一个不同的顺序使用TreeSet(Comparable接口-自然顺序,或Comparator接口-比较器顺序)。

  • 更新一个Set时,若无需保持元素的排序关系,应使用HashSet因为插入和删除元素所花的时间比较少;
    当需要一个排好序的Set时,可以从这个HashSet中创建一个TreeSet。

  • Comparator接口有两个方法:compare和equals
    public int compare(Object o1,Object o2)
    public boolean equals(Object element):
    若指定对象也是一个比较器,并且与这个比较器有相同的排序返回true.
    即:comp1.equals(comp2)等价于对于每个对象o1、o2而言,都存在
    sign(comp1.compare(o1,o2))=sign(comp2.compare(o1,o2))

  • 为使得数据结构能成功序列化,比较器必须实现Serializable接口。

  • Comparable用来比较实现Comparable的类的对象;Comparator用来比较没有实现Comparable的类的对象。

  • List接口增加了面向位置的操作,并且增加了一个能双向遍历List的ListIterator;它扩展了Iterator接口,以增加对List的双向遍历能力。

  • ArrayList用数组存储元素,此数组是动态创建的。若元素个数超过了数组的容量,就创建一个新数组,并将当前数组的所有元素都复制到新数组中;
    LinkedList在一个链表中存储元素。

  • 为从泛型类型的可变长参数表创建List,Java Arrays类提供了静态的asList方法:

public static <T> List<T> asList(T...a)
  • ps:
    Arrays.asList与Collection.toArray一同充当了基于数组的API与基于Collection的API之间的桥梁。

  • Java集合框架在Collections类中提供了用于List的sort、binarySearch、reverse、shuffle、copy、fill方法,
    以及用于Collection的max、min、disjoint、frequency方法。

  • 性能上,Set优于List;HashSet优于LinkedHashSet优于TreeSet;
    一般情况下,ArrayList优于LinkedList。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值