JDK21中的Sequenced Collections(序列集合)

前言

JDK21引入了新的集合接口族 Sequenced 集合(JEP 431),提供了对集合在两端的操作,它提供了一种有序的集合实现

集合操作

SequencedCollection使用

其接口方法为

ini 复制代码
public class SequencedCollectionDemo {


    public static void main(String[] args) {
        SequencedCollection<Integer> coll = new ArrayList<>();
        coll.add(3);
        coll.addFirst(1);
        coll.addLast(2);
        System.out.println(coll);
        System.out.println(coll.getFirst());
        System.out.println(coll.getLast());
        SequencedCollection<Integer> reversed = coll.reversed();
        System.out.println(reversed);
    }
}

输出结果为

ini 复制代码
public class SequencedArrayDemo {


    public static void main(String[] args) {
        SequencedCollection<Integer> coll = new ArrayDeque<>();
        coll.addFirst(1);
        coll.addLast(2);
        System.out.println(coll.getFirst());
        System.out.println(coll.getLast());  
        SequencedCollection<Integer> reversed = coll.reversed();
        System.out.println(reversed);

    }
}

输出结果为

SequencedSet使用

其接口为

SequencedSet不能作用于HashSet

ini 复制代码
public class SequencedSetDemo {


    public static void main(String[] args) {
        SequencedSet<Integer> coll = new LinkedHashSet<>();
        coll.add(3);
        coll.addFirst(1);
        coll.addLast(2);
        System.out.println(coll);
        System.out.println(coll.getFirst());
        System.out.println(coll.getLast());
        SequencedCollection<Integer> reversed = coll.reversed();

    }
}

SequencedMap使用

SequencedMap不能作用于HashMap

ini 复制代码
public class SequencedMapDemo {


    public static void main(String[] args) {
        SequencedMap<Integer, Integer> coll = new LinkedHashMap<>();
        coll.put(1, 1);
        coll.putFirst(2, 2);
        coll.putLast(3, 3);
        System.out.println(coll);
        System.out.println(coll.firstEntry());
        System.out.println(coll.lastEntry());
        SequencedMap<Integer, Integer> reversed = coll.reversed();
        System.out.println(reversed);

    }
}

输出结果为

总结

Sequenced Collections是Java中的一个新特性,它提供了一种有序的集合实现,其具有高效性能、可扩展性等优点,在使用新版本的JDK时,可以使用,但是根据个人习惯进行技术选取就好

相关推荐
Nobody_Cares31 分钟前
JWT令牌
java
沐浴露z32 分钟前
Kafka入门:基础架构讲解,安装与使用
java·分布式·kafka
神秘的土鸡37 分钟前
从数据仓库到数据中台再到数据飞轮:我的数据技术成长之路
java·服务器·aigc·数据库架构·1024程序员节
vir021 小时前
P1928 外星密码(dfs)
java·数据结构·算法·深度优先·1024程序员节
摇滚侠1 小时前
全面掌握PostgreSQL关系型数据库,备份和恢复,笔记46和笔记47
java·数据库·笔记·postgresql·1024程序员节
掘金码甲哥1 小时前
两张大图一次性讲清楚k8s调度器工作原理
后端
间彧2 小时前
Stream flatMap详解与应用实战
后端
间彧2 小时前
Java Stream流两大实战陷阱:并行流Parallel误用、List转Map时重复键异常
后端
eguid_12 小时前
【开源项目分享】JNSM1.2.0,支持批量管理的jar包安装成Windows服务可视化工具,基于Java实现的支持批量管理已经安装服务的可视化工具
java·开源·jar·1024程序员节·windows服务·jar包安装成服务·exe安装成服务
杯莫停丶3 小时前
设计模式之:享元模式
java·设计模式·享元模式