Java中的容器真的很重要

时间:2022-11-03 10:58:22

Java中的容器真的很重要

提起Java的容器,对java有一定基础的小伙伴肯定不会陌生。它是一个重要的数据结构,对对象的操作通常离不开集合。

容器分为两种:Collection和Map,Collection是元素的集合,而Map是键值对。

对应容器的代码都是java.util的包下的内容,提供很多操作集合的API

像添加容器使用Arrays.asList()和Collections.addAll()方法

List集合

List接口继承了Collection接口,它下面有很多实现类,典型就是ArrayList和LinkedList了。

Set接口和Collection接口完全一致,,它的特性就是元素不重复,所以常常用它来进行去重操作。它下面的实现类典型的有HashSet、TreeSet。HashSet使用数组散列函数处理这些元素,TreeSet使用红黑树的数据结构,TreeSet可以保证有序。

队列Queue

Queue同样继承了Collection接口,既然是队列,众所周知,先进先出的特性。你可能不知道,LinkedList实现了List接口的同时也实现了Queue接口。

PriorityQueue可以按照一定的等待时长优先级排列这些元素

PriorityQueue的构造方法:

public PriorityQueue(int initialCapacity,
                         Comparator<? super E> comparator) {
    
    if (initialCapacity < 1)
        throw new IllegalArgumentException();
    this.queue = new Object[initialCapacity];
    this.comparator = comparator;
}

通过PriorityQueue的构造方法我们知道,可以传入一个Comparator的实现类来定义排序规则,例如Collections.reverseOrder()

看一下Queue提供的一些方法:

  • offer()是放入元素到队尾
  • peek()方法是获取队头的元素,不会将队头元素移除,如果队列为空返回null
  • element()方法同样是获取队头的元素,不会将队头元素移除,当如果队列为空的话抛出异常
  • poll()方法是移除队头元素并返回队头元素,队列为空返回null
  • remove()方法移除并返回队头元素,队列为空抛出异常

Map

说完Collection再说说Map,Map中的get()方法用来获取元素,put()方法用来放置元素,containsKey()方法检测key是否存在,containsValue()方法检测对应的value值是否存在,keySet()方法会让map中的所有的key组成一个set集合,遍历的时候通常会用到这个方法。比如下面这种遍历方式:

for (String key : map.keySet()) {
   System.out.println("key= "+ key + " and value= " + map.get(key));
}

最后附上一张这些接口和类的关系图,希望你看完之后更加明了。

Java中的容器真的很重要

总结

这篇文章我们讲了容器中的List、Queue和Map等内容,其实是Collection接口和Map接口两大分支。Java的容器还是相当重要的了,里面涉及到的类也很多,包括一些并发容器,java容器的内容还是值得研究的。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞????????,评论????,转发????
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
  3. 有不当之处欢迎批评指正。