古玩网站源码分享 古玩资源

其实古玩网站源码分享的问题并不复杂,但是又很多的朋友都不太了解古玩资源,因此呢,今天小编就来为大家分享古玩网站源码分享的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

在JDK21中,引入了一种新的数据结构,名为SequencedCollections。SequencedCollections是一种线性数据结构,它的特点是元素之间具有严格的顺序关系。这种特性使得SequencedCollections在许多应用场景下具有很大的优势。

本文将为您详细介绍SequencedCollections的用法,以及如何在Java程序中使用SequencedCollections。

1.什么是SequencedCollections

Java之前并没有一个通用的接口来描述具有明确定义的具有顺序的集合。例如,虽然Set接口本身并没有规定元素出现的顺序,但其子类型LinkedHashSet和SortedSet却有着明确的元素出现顺序。LinkedHashSet和SortedSet具体的顺序相关的描述和方法都是由各自实现的,SequencedCollections出现就是为了统一这种顺序相关的行为。

我给SequencedCollection源码添加中文翻译如下:

/**\n*一个具有明确定义的出现顺序,支持两端操作,并可反转的集合。顺序集合的元素具有遍历顺序,其中元素从第一个元素到最后一个元素形成一个线性排列的概念。对于任意两个元素,一个元素要么在另一个元素之前(更靠近第一个元素),要么在其之后(更靠近最后一个元素)。(注意,这个定义并不意味着元素在计算机内存中的物理位置等实际位置。)\n*从Collection接口继承的多个方法需要按照集合的遍历顺序操作元素。例如,迭代器方法提供从第一个元素开始的元素,依次遍历到最后一个元素。其他需要按照遍历顺序操作元素的方法包括:forEach、parallelStream、spliterator、stream以及所有的toArray方法重载。\n*此接口提供在集合两端添加、检索和删除元素的方法。\n*此接口还定义了reversed方法,提供此集合的反向排序视图。在反向排序视图中,首元素和尾元素的概念是颠倒的,后继元素和前驱元素的概念也是颠倒的。此集合的第一个元素是反向排序视图的最后一个元素,反之亦然。此集合中某个元素的后继元素在反向视图中是其前驱元素,反之亦然。所有尊重集合遍历顺序的方法都会像遍历顺序被反转一样操作。例如,反向视图的迭代器方法会按照从此集合的最后一个元素到第一个元素的顺序报告元素。reversed方法的可用性及其对所有适用方法的排序语义的影响,使得可以方便地按照正向或反向顺序迭代、搜索、复制和流式处理此集合的元素。\n*此类是Java集合框架的成员。\n*\n*/\npublicinterfaceSequencedCollection<E>extendsCollection<E>{\n/**\n*返回此集合的反向排序视图。返回视图中元素的遍历顺序是此集合元素遍历顺序的反转。反向排序影响所有受顺序影响的操作,包括返回视图的视图集合的操作。如果集合实现允许修改此视图,则修改会“写入”到基础集合中。对基础集合的更改可能会在此反向视图中可见,也可能不可见,这取决于实现。\n*/\njava.util.SequencedCollection<E>reversed();\n\n/**\n*将一个元素添加为此集合的第一个元素(可选操作)。操作成功完成后,给定的元素将成为此集合的成员,并且它将是遍历顺序中的第一个元素。\n*/\ndefaultvoidaddFirst(Ee){\nthrownewUnsupportedOperationException();\n}\n\n/**\n*将一个元素添加为此集合的最后一个元素(可选操作)。操作成功完成后,给定的元素将成为此集合的成员,并且它将是遍历顺序中的最后一个元素。\n*/\ndefaultvoidaddLast(Ee){\nthrownewUnsupportedOperationException();\n}\n\n/**\n*获取此集合的第一个元素。\n*/\ndefaultEgetFirst(){\nreturnthis.iterator().next();\n}\n\n/**\n*获取此集合的最后一个元素。\n*/\ndefaultEgetLast(){\nreturnthis.reversed().iterator().next();\n}\n\n/**\n*移除并返回此集合的第一个元素(可选操作)。\n*/\ndefaultEremoveFirst(){\nvarit=this.iterator();\nEe=it.next();\nit.remove();\nreturne;\n}\n\n/**\n*移除并返回此集合的最后一个元素(可选操作)。\n*/\ndefaultEremoveLast(){\nvarit=this.reversed().iterator();\nEe=it.next();\nit.remove();\nreturne;\n}\n}\n\n

它目前具有三个比较通用的直接子类接口

List:没错,它的父类改了,由之前的Collection改成了SequencedCollection。SequencedMap:LinkedHashMap和SortedMap都是它的子类。SequencedSet:LinkedHashSet和SortedSet都是它的子类。

2.总结

JDK21中的SequencedCollections提供了多种有序数据结构的实现,可以满足不同的应用场景需求。在使用SequencedCollections时,开发者需要根据具体的性能需求和内存占用情况来选择合适的实现。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平