每个人都应该知道的Java中的三个智能集合

127 阅读3分钟

集合是一个软件项目中不可缺少的结构。而Java有一些神奇的集合,可以使你的项目更强大,更容易管理。

在这篇文章中,我将通过一些例子来处理Java 中的三个高级集合。它们是MapsSetsQueues。了解这些可以节省你的时间,使你的项目更强大。

我将使用IntelliJ IDEA作为IDE。

地图

地图 使检索一个集合中的对象变得容易。它所做的事情是用独特的键来标记对象,你决定它们是如何的。然后,你从_Map_ 集合中调用一个对象所要做的所有事情就是通过_它的关键字_来调用它。它在恒定的时间内完成这些工作。时间的长短并不取决于集合有多少个对象。这听起来很酷!

让我们通过这个例子来深入了解这个话题。

我们有一个名为Book的类

medium.com/media/ded92…

现在我将进入主类。

medium.com/media/944a1…

首先,我从Book类中实例化了三个Book对象。然后我创建了一个名为Books的神奇集合_Map_ 。这里需要注意的是_Map_ 是从HashMap 类中实例化出来的,因为它是一个接口,而不是一个

Map<String, Book> books = new HashMap<>();

上面这句话的意思是,我们要创建一个_Map集合_来存储_Book_ 对象,并给它们标注一些String 关键字。

然后,我用方法.put()将书添加到collectionbooks中,我是通过将它们的标题标记出来的。

通过for-loop,我只是想展示用于调用对象的关键字。

War and Peace

最后,在第26行,我们看到了如何操作_Map_。通过使用方法.get()并向其传递关键字_(这里是关键字书籍的名称_),我们可以检索整个对象。没有循环,时间更短。

author: ‘Fyodor Dostoevsky’ title: ‘Crime and Punishment’ number of pages: ‘576’

集合

Set 是一种集合类型。它为我们提供了避免在一个集合中出现重复的项目。所以,它没有_重复的值_。

由于它是一个像Maps一样的接口,它不能从自身实例化。它扩展了Collection 接口。因此,它提供了与其他集合数据结构相同的方法。

对于_Set_ 接口有三种实现方式。HashSet,TreeSet,LinkedHashSet。(你可以通过这个链接来了解更多关于这些的信息)

让我们看一下这个例子。

medium.com/media/d8369…

我从_HashSet_ 实例化了一个名为mySet的_Set_集合_,_ 并添加了四个String项。然后我在mySet中循环显示这些项目。

输出结果。

Aziz

是的,我添加了四个项目。但是由于有些项目是重复的,mySet不接受相同的值。所以它只有两个项目。

在第22行,为了确定,我检查了它的大小。

的输出。

I have 2 items.

队列

有时我们需要根据FIFO (先进先出)规则来处理一个集合中的项目。就像电影院的排队一样。如果你是第一个到达检查站的人,你就先进入电影院。而最后来的人,则最后进入。

队列集合以同样的方式工作。当你向队列 中添加一个项目时**,** 它被添加到集合的最后。

队列也是一个接口。它们不能直接用于实例化一个类。

这个例子就来了。

medium.com/media/b106d…

我用myQueue这个名字创建了队列,就像Maps和Sets一样,因为它也是一个接口。

我通过使用方法.add()来添加项目。不同的是,我通过使用方法.poll()来调用这些项目。在控制台中显示项目后,它就从集合中删除了。我通过在控制台打印myQueueout的大小来检查这一点。

输出。

I am

结论

我们讨论了Java中三个非常有用的集合。我们现在知道,它们是接口,而不是一个类。因为它们扩展了Collection类,所以它们拥有和Collection一样的方法。但它们也有自己的特殊方法。

谢谢你!


每个人都应该知道的Java中的三个智能集合最初发表在Medium上的Javarevisited,在那里人们通过强调和回应这个故事来继续对话。