Java集合类型对象的快速初始化

这篇具有很好参考价值的文章主要介绍了Java集合类型对象的快速初始化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Java中, 集合类型的对象初始化, 一般是先创建对象, 然后往集合里面增加元素,这种写法直观,但是撰写代码的时候感觉比较冗余, 是否有什么酷炫的方式简化定义初始化呢?
本篇介绍字符串数组、List 和 Map类型对象的定义初始化简单方式。

字符串数组的简化初始化

常用的写法:

		String[] strArray = new String[3] ;
		strArray[0] = "1";
		strArray[1] = "2";
		strArray[2] = "3";

简化的写法:

String[] strArray = new String[] {"1","2","3"};

这里使用一行代码, 替换了四行代码, 是不是简化多了?

列表的简化初始化

常用的写法先创建对象, 再往里面添加元素, 代码如下:

		List<String> list = new ArrayList<String>();
		list.add("1");
		list.add("2");
		list.add("3");

简化的写法:

List<String> list = Arrays.asList("1","2","3");

通过Arrays的asList() 方法来建立列表类型对象的初始化。

Map类型的简化初始化 - 不建议使用

Map以键值对的方式存储数据, 定义一个HashMap类型的对象并初始化的代码如下:

		Map<String,String> map = new HashMap<String,String>();
		map.put("key1", "1");
		map.put("key2", "2");
		map.put("key3", "3");

可以使用双括号初始化(Double Brace Initialization)来简便地初始化 HashMap,代码如下:

		Map<String,String> map = new HashMap<String,String>(){{
			put("key1", "1");
			put("key2", "2");
			put("key3", "3");
		}};

上面的方式是通过创建一个匿名子类并在初始化代码块中调用 put 方法来达到简便地定义和初始化 HashMap 的目的。

但是请注意,这种方法在某些场景下可能会造成内存泄漏,因为匿名子类会保留对外部类的引用。而且上面代码的简化程度也不高,所以Map 的简化方式不推荐使用。文章来源地址https://www.toymoban.com/news/detail-463979.html

本篇示例代码

  • https://github.com/osxm/java-ency/blob/master/src/main/java/com/osxm/je/chp1/CollectionInitial.java


到了这里,关于Java集合类型对象的快速初始化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++基础(六)】类和对象(下)--初始化列表,友元,匿名对象

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++初阶之路⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 关于类和对象的大致内容已经结束 本篇文章主要是介绍一些冗杂的细节 虽然本节的内容属于对类和对象锦上添花 但在很多特定的场所下,还是

    2024年02月14日
    浏览(61)
  • 【C++基础】类与对象(下) 初始化列表、友元、内部类、匿名对象

    ​👻内容专栏: C/C++编程 🐨本文概括: C++基础语法。初始化列表、 explicit 、 static 成员、友元、内部类、匿名对象、拷贝对象时的一些编译器优化等。 🐼本文作者: 阿四啊 🐸发布时间:2023.9.8 在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个

    2024年02月09日
    浏览(48)
  • 【K8S系列】快速初始化⼀个最⼩集群

    走得最慢的人,只要不丧失目标,也比漫无目的地徘徊的人走得快。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级重要 蓝色 :用来标记二级重要 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言

    2024年02月04日
    浏览(50)
  • Android---Class 对象在执行引擎中的初始化过程

    一个 class 文件被加载到内存中的步骤如下图所示: 装载  装载是指 Java 虚拟机查找 .class 文件并生成 字节流 ,然后根据字节流创建 java.lang.Class 对象的过程。 1. ClassLoader 通过一个类的 全限定名 ( 包名+类名 )来查找 .class 文件,并生成二进制字节流。其中 class 字节码文件

    2024年02月07日
    浏览(50)
  • [C++ ]:5.类和对象中(运算符重载补充)+ 类和对象下(初始化列表)

    我们知道进行运算符重载这个函数的参数的左右类型是非常重要的,我们尝试在类中去定义这个流插入重载! 1. 考虑到隐含的参数指针: 2.进行优化! 我们观察上面的代码发现可以实现在类中进行流插入运算符的一个重载但是我们需要考虑隐含参数的位置所以我们进行传参

    2024年02月06日
    浏览(47)
  • C语言——结构体类型(一)【结构体定义,创建,初始化和引用】

    📝前言: 在实际编程过程中,我们可能会希望把一些关联的数据存放在一起,这样方便我们使用。但是这些数据的类型有时候并不一致,例如一个学生的信息:有名字(字符串),有年龄(整数),性别(字符)······这时候,我们就可以使用 自定义类型——结构体类型

    2024年02月03日
    浏览(47)
  • 【C++】初始化列表、static成员、友元、匿名对象、附练习题

    我们前面学习了关于类和对象的6个默认成员函数,知道了一个空类中有构造函数和析构函数,通过对对象初始化和对象中进行资源清理,达到初始化和销毁的作用。我们再对一些小的点进行补充,看看类和对象的一些细节。 1.1 构造函数体赋值 在创建对象时,编译器通过 调

    2024年02月22日
    浏览(51)
  • 【C++初阶】六、类和对象(初始化列表、static成员、友元、内部类)

    ========================================================================= 相关代码gitee自取 : C语言学习日记: 加油努力 (gitee.com)  ========================================================================= 接上期 : 【C++初阶】五、类和对象 (日期类的完善、流运算符重载函数、const成员、“”取地址运算符重

    2024年02月05日
    浏览(42)
  • 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南

    变量是用于存储数据值的容器。 在 C# 中,有不同类型的变量(用不同的定义),例如: int - 存储整数(没有小数点的整数),如 123 或 -123 double - 存储浮点数,有小数点,如 19.99 或 -19.99 char - 存储单个字符,如 \\\'a\\\' 或 \\\'B\\\'。 Char 值用单引号括起来 string - 存储文本,如

    2024年01月17日
    浏览(47)
  • 【C++】类与对象 第三篇(初始化列表,explicit,static,友元,内部类)

    目录 再谈构造函数 构造函数体赋值 初始化列表 explicit static成员 匿名对象 友元 友元函数 友元类 内部类 拷贝对象时的一些编译器优化 在创建对象时,编译器通过调用构造函数给对象各个成员变量一个合适的初始值 虽然上述构造函数调用之后,对象中已经有了一个初

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包