0

Java中的容器真的很重要

 1 year ago
source link: https://blog.51cto.com/u_15460453/5817899
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Table of Contents

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()方法移除并返回队头元素,队列为空抛出异常

说完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. 有不当之处欢迎批评指正。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK