首页 > 其他分享 >集合之不可变集合

集合之不可变集合

时间:2022-12-12 10:36:41浏览次数:33  
标签:Map 不可 System put strM 集合 println out

不可变List集合:

package com.Lucky;
//System.out.println("------------拓展:创建不可变的list集合---------------");

import java.util.Iterator;
import java.util.List;

public class NoValList {
    public static void main(String[] args) {
        //创建不可变的list集合--
        List<String> list = List.of("张三", "李四", "王五");

        //遍历
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("-------------------------");
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("-------------------------");
        Iterator<String> iter = list.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next());
        }


        System.out.println("-----------不可变展示--------------");
        list.add("唯易");
        list.remove("张三");
        list.set(1,"唯易");

        /**
         * 无法进行其他的操作
         * 只能查询
         */

    }


}

  

不可变Set集合:

package com.Lucky;

import java.util.Set;

/*
不可变的Set集合
        注意点:必须保证Set集合中存在唯一的值,否则会报错
 */
public class NoValSet {
    public static void main(String[] args) {
        //创建
        Set<String> setVar = Set.of("唯易");

        //遍历
        for (String s : setVar) {
            System.out.println(s);
        }


        //报错:只能查询
        setVar.add("BUG");
        setVar.remove("BUG");
        setVar.clear();

    }
}

不可变Map集合:

    package com.Lucky;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    /*
    不可变Map集合
               注意点:1.  键不可以重复
                     2.   最大传递的参数数量只有20个【底层无法采用可变参数】
                     3.如果实在是要传递超过20个参数【10对键值对】的话,请用Map.ofEntries();
      */
    public class NoValMap {
        public static void main(String[] args) {
            Map<String, Integer> mapVar = Map.of("唯易", 99999,"张三",66666);
    
    
            Set<String> strings = mapVar.keySet();
            for (String str : strings) {
                System.out.println(str+":"+mapVar.get(str));
            }
            System.out.println("*************************************");
            Set<Map.Entry<String, Integer>> ent = mapVar.entrySet();
            for (Map.Entry<String, Integer> entry : ent) {
                String k=entry.getKey();
                int v=entry.getValue();
    
                System.out.println(k+":"+v);
            }
    
    
            ///////////////报错/////////////////
    //        System.out.println("----------报错-------------------");
    //        mapVar.put("王五",888888);
    //        mapVar.remove("王五");
    //        mapVar.clear();
    
    
            System.out.println("--------Map.ofEntries();----------");
            HashMap<String,Integer> strM=new HashMap<>();
            strM.put("we",1);
            strM.put("v",2);
            strM.put("cdv",3);
            strM.put("g",4);
            strM.put("bny",5);
            strM.put("ib",6);
            strM.put("bth",7);
            strM.put("rtu",8);
            strM.put("df",9);
            strM.put("mhhgfd",10);
            strM.put("ddfghjkgff",11);
            //获取键值对对象
            Set<Map.Entry<String, Integer>> entries = strM.entrySet();
            //创建符合Map.ofEntries();储存的键值对对象
            Map.Entry[] Ent = new Map.Entry[11];
            //创建变量接收
            Map.Entry[] ries = entries.toArray(Ent);
    
            Map<String, Integer> mapOf = Map.ofEntries(ries);  //参数时键值对类型
             /*
                           |
                           |
                           |
                           简化
              */
          //  Map.ofEntries(strM.entrySet().toArray(new Map.Entry[0]));
       /*
                           |
                           |
                           |
                           再简化
                    JDK10之后再出现的方法:copyOf()
              */
            Map<String, Integer> map = Map.copyOf(strM);
            //此时的map就是不可变的map集合了
    
            //报错
            mapOf.put("kaokao",4567);
            map.put("kaokao",4567);
    
    
    
    
        }
    }

  

标签:Map,不可,System,put,strM,集合,println,out
From: https://www.cnblogs.com/Lucky-only/p/16975395.html

相关文章

  • 集合之综合小练习
    packagecom.Lucky.test;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Random;/*自动点名器要求:班级里面存在N名学生,实......
  • 集合之Set【TreeSet】
    packagecom.Lucky;importjava.util.Iterator;importjava.util.TreeSet;/***TreeSet:底层采用红黑树结构*可排序【默认从小到大】/无重复/无索......
  • 集合之Set【HashSet】
    packagecom.Lucky;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;importjava.util.function.Consumer;/***Set集合:无序/不可......
  • 集合之泛型【Genericcs】
    packagecom.Lucky;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Iterator;/***泛型的应用场景:*1。如果我们在定义类/......
  • 集合之Collections工具类
    packagecom.Lucky;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;/*Collections:java。util.Collections解......
  • 集合接口【Collection】之ArrayList
    packagecom.Lucky;importjava.awt.*;importjava.util.LinkedList;importjava.util.List;/*ArrayList:1.底层使用顺序存储结构,可以使用角......
  • 集合
    1packagecom.Lucky;23importjava.util.ArrayList;4importjava.util.Iterator;56/**7*集合:Collection[接口]与Map[接口]8*9*......
  • python字符串中返回bool类型的函数集合
    #isspaceistitleisupperislower#isspace判断字符串是否是一个由空格组成的字符串booltype=string.isspace()->无参数可传,返回一个布尔类型#由空格组成的字符串......
  • 离散数学: 集合关系
    课时4:集合与关系(上)_哔哩哔哩_bilibili       一些栗子:    下面那个直接打开就行了    栗子: ......
  • Java集合类的简单使用
    下面算法使用的Student类classStudentimplementsComparable<Student>{privatefinalStringname;privatefinalIntegerage;publicStudent(Stringname,In......