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时,可以使用,但是根据个人习惯进行技术选取就好

相关推荐
slim~7 小时前
Java基础第9天总结(可变参数、Collections、斗地主)
java·开发语言
豆沙沙包?7 小时前
2025年- H118-Lc86. 分隔链表(链表)--Java版
java·数据结构·链表
摆烂工程师7 小时前
教你如何认证 Gemini 教育优惠的二次验证,薅个 1年的 Gemini Pro 会员
后端·程序员·gemini
绝无仅有7 小时前
未来教育行业的 Go 服务开发解决方案与实践
后端·面试·github
A尘埃8 小时前
智能工单路由系统(Java)
java·开发语言·智能工单
程序员爱钓鱼8 小时前
Go语言实战案例- 命令行参数解析器
后端·google·go
心在飞扬8 小时前
Redis 介绍与 Node.js 使用教程
后端
milanyangbo9 小时前
“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
分布式·后端·云原生·架构
失散139 小时前
分布式专题——1.1 Redis单机、主从、哨兵、集群部署
java·数据库·redis·分布式·架构
刘一说9 小时前
Linux调试命令速查:Java/微服务必备
java·linux·微服务