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

相关推荐
Full Stack Developme13 分钟前
Java 漏斗算法 及应用场景
java·开发语言·算法
从此以后自律30 分钟前
Spring 全家桶
java·后端·spring
偏爱自由 !33 分钟前
一(0.1):配置git
java·git·intellij-idea
骑士雄师39 分钟前
java面试记录: sychonized 锁,熔断组件,分布式锁
java·开发语言·面试
有颜有货1 小时前
PMC生产排产的4种算法,一次讲清
java·服务器·前端
lilihuigz1 小时前
Meta Box完整指南:WordPress自定义字段与内容框架高效构建结构化内容 - 易服客工作室
java·开发语言
utmhikari2 小时前
【日常随笔】深入回答纯Vibe Coding写后端项目的几个问题
后端·ai编程·vibecoding
尚早立志2 小时前
Spring Boot 源码研读之ConfigurableEnvironment 环境准备
java·spring boot·后端
YuK.W2 小时前
Leetcode100: 94.二叉树中序遍历、104.二叉树最大深度、226.翻转二叉树
java·算法·leetcode·二叉树
乂爻yiyao2 小时前
0. openems 部署与体验
java·openems