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

相关推荐
4***17276 分钟前
Spring Boot中Tomcat配置
java
源代码•宸15 分钟前
Golang语法进阶(协程池、反射)
开发语言·经验分享·后端·算法·golang·反射·协程池
Chan1636 分钟前
场景题:CPU 100% 问题怎么排查?
java·数据库·redis·后端·spring
qq_336313931 小时前
java基础-IO流(网络爬虫/工具包生成假数据)
java·爬虫·php
我是谁的程序员1 小时前
iOS 文件管理,在不越狱的前提下管理 iPhone / iPad 文件
后端
v***59831 小时前
springBoot连接远程Redis连接失败(已解决)
spring boot·redis·后端
桦说编程1 小时前
滑动窗口限流器的演进之路:从调度器实现到 Packed CAS
java·后端·性能优化
狗头大军之江苏分军1 小时前
告别旧生态:Ant Design 6 不再支持 IE 与现代前端趋势解读
前端·javascript·后端
开开心心_Every2 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint