JDK1.9中关于集合的新方法

1.JDK9的新特性:
        List接口, Set接口, Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素
        static <E> list<E> of (E... elements)
        使用前提:
               当集合中存储的元素的个数已经确定了,不再改变时使用
注意:
1. of方法只适用于List接口, Set接口,Map接口,不适用于接口的实现类
2. of方法的返回值是一个不能改变的集合,集合不能再使用add, put方法添加元素,会抛出异常
3. Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常

2.代码演示:

//演示JDK9的新特性--of方法
public class OfDemo {
    public static void main(String[] args) {
        List<String> list=List.of("a","b","c");
        System.out.println(list);
        //list.add("d");
        //不能再添加元素 java.lang.UnsupportedOperationException
        Set<String> set=Set.of("aa","bb","cc");
        //Set<String> set2=Set.of("aa","bb","cc","aa");
        //Set中不能有重复的元素 IllegalArgumentException: duplicate element: aa
        System.out.println(set);
        Map<Integer,String> map=Map.of(1,"aaa",2,"bbb",3,"ccc");
        System.out.println(map);
    }
}

3.注意:

Collections重写了toString()方法,所以可以直接打印集合;

但是数组没有重写toString()方法,所以打印数组arr时要Arrays.toString(arr);

原文地址:https://www.cnblogs.com/iceywu/p/12040583.html

时间: 2024-10-17 23:47:08

JDK1.9中关于集合的新方法的相关文章

将dll文件注入到其他进程中的一种新方法

http://www.45it.com/windowszh/201212/33946.htm http://www.hx95.cn/Article/OS/201212/65095.html 我们知道将动态连接库注入到其他进程中有很多种方法.最常见的方法是使用钩子函数(Hook),但是这种方法主要有两个缺点:第一如果某个进程没有加载User32.dll,那么Hook DLL将永远也不会被加载.第二Hook DLL加载的时机问题,只有在进程发出User32调用的时候, Hook DLL才有可能被加载

SQL Server中解决死锁的新方法介绍

SQL Server中解决死锁的新方法介绍 数据库操作的死锁是不可避免的,本文并不打算讨论死锁如何产生,重点在于解决死锁,通过SQL Server 2005, 现在似乎有了一种新的解决办法. 将下面的SQL语句放在两个不同的连接里面,并且在5秒内同时执行,将会发生死锁. <ccid_nobr> <ccid_code>use Northwindbegin tran insert into Orders(CustomerId) values(@#[email protected]#)

vue学习(十四) 条件搜索框动态查询表中数据 数组的新方法

//html <div id="app"> <label> 名称搜索关键字: <input type="text" clasa="form-control" v-model="keywords"> </label> <table class="table table-bordeered table-hover table-striped"> <

Java中list集合的clean()方法滥用引发的bug

做的是电商系统,主系统生成订单后,分别加入到不同的队列中给另外的三个子系统来异步处理,订单和商品是一对多的关系,在实际测试中,发现其中有一个子系统从队列中获取到的订单实体中,商品列表一直为空,子系统的开发人员一直说是获取不到值导致.因为这个问题,测试一直没通过,不得已只能打日志,反复排查.最后发现在这个子系统中,从队列拿到订单实体后,商品列表是不为空的,但是在执行了一个方法后,该订单实体类的商品就为空了.定位到问题后,调试这个方法,后来发现,整个方法的逻辑都是没问题的,只是在方法的最后,对传入的

Java中List集合排序的方法 比较器的使用 根据学生对象数序 语文 英语成绩总和进行sort排序

package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Scanner; public class Test2_ObjectIO { @SuppressWarnings("unchecked") public static void main(Strin

java中Set集合的遍历方法

S儿童集合的遍历: 第一种:for增强循环 Set<String> set = new HashSet<String>(); for (String str : set) {      System.out.println(str);} 第二种:迭代器遍历 Iterator<String> it = set.iterator();while (it.hasNext()) {  System.out.println(it.next);} 第三种:用的比较少(主要用于泛型的

jmeter ---集合点使用方法:Synchronizing Timer

LR中集合点可以设置多个虚拟用户等待到一个点,同时触发一个事务,以达到模拟真实环境下多个用户同时操作,实现性能测试的最终目的. jmeter中使用Synchronizing Timer实现Lr中集合点的功能,模拟多用户并发测试,即多个线程在同一时刻并发请求. jmeter中使用集合点的方法:Synchronizing Timer 将测试元件Synchronizing Timer添加到请求之前或某个Sampler的子节点,右键菜单依次选择“添加–>定时器/Timer–>Synchronizing

C#中多集合组合实现

C#中多集合组合使用方法,主要用到 Enumerable.Join方法 var skuInfoList = new Dictionary<int, List<long>>(); var ctParamList = new List<long>(); foreach (var sku in skuList) { var singleSku = sku.Split('|'); ctParamList = new List<long>(); foreach (va

SQL Server数据库中还原孤立用户的方法集合

SQL Server数据库中还原孤立用户的方法集合 虽然SQL Server现在搬迁的技术越来越多,自带的方法也越来越高级. 但是我们的SQL Server在搬迁的会出现很多孤立用户,微软没有自动的处理. 因为我们的数据库权限表都不会在应用数据库中,但是每次对数据库作迁移的时候,单个数据库却带着它的数据库用户对象. 并且我们在新的数据库机器上也不能登录这些账号,但是它却静悄悄的存在我们的数据库中. 微软以前提供的一个老的接口存储过程来处理这个问题. sp_change_users_login 将