文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从零开始学习 Java:简单易懂的入门指南之不可变集合、方法引用(二十六)

2023-09-20 16:20

关注

不可变集合、方法引用

1.不可变集合

1.1 什么是不可变集合

​ 是一个长度不可变,内容也无法修改的集合

1.2 使用场景

​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。

​ 当集合对象被不可信的库调用时,不可变形式是安全的。

简单理解:

​ 不想让别人修改集合中的内容

比如说:

1,斗地主的54张牌,是不能添加,不能删除,不能修改的

2,斗地主的打牌规则:单张,对子,三张,顺子等,也是不能修改的

3,用代码获取的操作系统硬件信息,也是不能被修改的

1.3 不可变集合分类

1.4 不可变的list集合

public class ImmutableDemo1 {    public static void main(String[] args) {                //一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作        List<String> list = List.of("张三", "李四", "王五", "赵六");        System.out.println(list.get(0));        System.out.println(list.get(1));        System.out.println(list.get(2));        System.out.println(list.get(3));        System.out.println("---------------------------");        for (String s : list) {            System.out.println(s);        }        System.out.println("---------------------------");        Iterator<String> it = list.iterator();        while(it.hasNext()){            String s = it.next();            System.out.println(s);        }        System.out.println("---------------------------");        for (int i = 0; i < list.size(); i++) {            String s = list.get(i);            System.out.println(s);        }        System.out.println("---------------------------");        //list.remove("李四");        //list.add("aaa");        list.set(0,"aaa");    }}

1.5 不可变的Set集合

public class ImmutableDemo2 {    public static void main(String[] args) {                //一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作        Set<String> set = Set.of("张三", "张三", "李四", "王五", "赵六");        for (String s : set) {            System.out.println(s);        }        System.out.println("-----------------------");        Iterator<String> it = set.iterator();        while(it.hasNext()){            String s = it.next();            System.out.println(s);        }        System.out.println("-----------------------");        //set.remove("王五");    }}

1.6 不可变的Map集合

1.6.1:键值对个数小于等于10

public class ImmutableDemo3 {    public static void main(String[] args) {               //一旦创建完毕之后,是无法进行修改的,在下面的代码中,只能进行查询操作        Map<String, String> map = Map.of("张三", "南京", "张三", "北京", "王五", "上海",                "赵六", "广州", "孙七", "深圳", "周八", "杭州",                "吴九", "宁波", "郑十", "苏州", "刘一", "无锡",                "陈二", "嘉兴");        Set<String> keys = map.keySet();        for (String key : keys) {            String value = map.get(key);            System.out.println(key + "=" + value);        }        System.out.println("--------------------------");        Set<Map.Entry<String, String>> entries = map.entrySet();        for (Map.Entry<String, String> entry : entries) {            String key = entry.getKey();            String value = entry.getValue();            System.out.println(key + "=" + value);        }        System.out.println("--------------------------");    }}

1.6.2:键值对个数大于10

public class ImmutableDemo4 {    public static void main(String[] args) {                //1.创建一个普通的Map集合        HashMap<String, String> hm = new HashMap<>();        hm.put("张三", "南京");        hm.put("李四", "北京");        hm.put("王五", "上海");        hm.put("赵六", "北京");        hm.put("孙七", "深圳");        hm.put("周八", "杭州");        hm.put("吴九", "宁波");        hm.put("郑十", "苏州");        hm.put("刘一", "无锡");        hm.put("陈二", "嘉兴");        hm.put("aaa", "111");        //2.利用上面的数据来获取一个不可变的集合        //Map map = Map.ofEntries(hm.entrySet().toArray(new Map.Entry[0]));        Map<String, String> map = Map.copyOf(hm);        map.put("bbb","222");    }}

2.方法引用

2.1体验方法引用

2.2方法引用符

2.3引用类方法

​ 引用类方法,其实就是引用类的静态方法

2.4引用对象的实例方法

​ 引用对象的实例方法,其实就引用类中的成员方法

2.5引用类的实例方法

​ 引用类的实例方法,其实就是引用类中的成员方法

2.6引用构造器

​ 引用构造器,其实就是引用构造方法

后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

来源地址:https://blog.csdn.net/m0_59230408/article/details/132251319

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯