集合是一个软件项目中不可缺少的结构。而Java有一些神奇的集合,可以使你的项目更强大,更容易管理。
在这篇文章中,我将通过一些例子来处理Java 中的三个高级集合。它们是Maps、Sets和Queues。了解这些可以节省你的时间,使你的项目更强大。
我将使用IntelliJ IDEA作为IDE。
地图
地图 使检索一个集合中的对象变得容易。它所做的事情是用独特的键来标记对象,你决定它们是如何的。然后,你从_Map_ 集合中调用一个对象所要做的所有事情就是通过_它的关键字_来调用它。它在恒定的时间内完成这些工作。时间的长短并不取决于集合有多少个对象。这听起来很酷!
让我们通过这个例子来深入了解这个话题。
我们有一个名为Book的类
现在我将进入主类。
首先,我从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。(你可以通过这个链接来了解更多关于这些的信息)
让我们看一下这个例子。
我从_HashSet_ 实例化了一个名为mySet的_Set_集合_,_ 并添加了四个String项。然后我在mySet中循环显示这些项目。
输出结果。
Aziz
是的,我添加了四个项目。但是由于有些项目是重复的,mySet不接受相同的值。所以它只有两个项目。
在第22行,为了确定,我检查了它的大小。
的输出。
I have 2 items.
队列
有时我们需要根据FIFO (先进先出)规则来处理一个集合中的项目。就像电影院的排队一样。如果你是第一个到达检查站的人,你就先进入电影院。而最后来的人,则最后进入。
队列集合以同样的方式工作。当你向队列 中添加一个项目时**,** 它被添加到集合的最后。
队列也是一个接口。它们不能直接用于实例化一个类。
这个例子就来了。
我用myQueue这个名字创建了队列,就像Maps和Sets一样,因为它也是一个接口。
我通过使用方法.add()来添加项目。不同的是,我通过使用方法.poll()来调用这些项目。在控制台中显示项目后,它就从集合中删除了。我通过在控制台打印myQueueout的大小来检查这一点。
输出。
I am
结论
我们讨论了Java中三个非常有用的集合。我们现在知道,它们是接口,而不是一个类。因为它们扩展了Collection类,所以它们拥有和Collection一样的方法。但它们也有自己的特殊方法。
谢谢你!
每个人都应该知道的Java中的三个智能集合最初发表在Medium上的Javarevisited,在那里人们通过强调和回应这个故事来继续对话。