`
left.jessica
  • 浏览: 32846 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java容器 - 提醒1则

阅读更多

1、Arrays.asList()返回的List的实现类为java.util.ArrayList.ArrayList(私有内部类),固定大小,不能做add,remove操作

 

2、调用此构造方法ArrayList(Collection c) 

new ArrayList(Arrays.asList(str));对str数组的改变不影响产生的新ArrayList

原因:

JDK源码:

    public ArrayList(Collection<? extends E> c) {
                // 调用了toArray()
	elementData = c.toArray();
	size = elementData.length;
	// c.toArray might (incorrectly) not return Object[] (see 6260652)
	if (elementData.getClass() != Object[].class)
	    elementData = Arrays.copyOf(elementData, size, Object[].class);
    }

 而toArray()注释中提到:此方法必须重新分配一个数组,尽管这个Collection背后就是一个数组

    /**
     * Returns an array containing all of the elements in this collection.
     * If this collection makes any guarantees as to what order its elements
     * are returned by its iterator, this method must return the elements in
     * the same order.
     *
     * <p>The returned array will be "safe" in that no references to it are
     * maintained by this collection.  (In other words, this method must
     * allocate a new array even if this collection is backed by an array).
     * The caller is thus free to modify the returned array.
     *
     * <p>This method acts as bridge between array-based and collection-based
     * APIs.
     *
     * @return an array containing all of the elements in this collection
     */
    Object[] toArray();

  所以调用以上构造方法产生的ArrayList和原先的数组,实际操纵的是2组不同的对象引用

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    Java项目-基于SSM的企业办公自动化系统.zip

    本项目是一个典型的Java企业级应用,采用了Spring、SpringMVC和MyBatis(简称SSM)三大框架进行构建,旨在实现一个高效、便捷的企业办公自动化系统。这样的系统能够提升企业内部的工作效率,减少纸质文档的流转,...

    基于java的-152-springboot大学生体质测试管理系统--LW-源码.zip

    JPA是Java EE的一部分,提供了对象/关系映射,而MyBatis则是一种轻量级的SQL映射框架,允许开发者直接编写SQL来操作数据库。 4. **安全控制**:SpringBoot集成了Spring Security,用于身份验证和授权,确保系统的...

    ssm助学贷款论文-java-ssm-ssm助学贷款文档-文档

    Ajax用于异步加载数据,Vue.js则是一个用于构建用户界面的渐进式框架。 #### 三、系统功能模块 助学贷款管理系统主要包括以下几个核心功能模块: 1. **基本信息管理**: - 用户信息管理 - 助学金政策管理 - ...

    java-web图书管理系统-基于java-web实现的图书管理系统.docx

    ### Java Web 图书管理系统知识点概览 #### 一、项目背景与目标 - **项目背景**:随着信息技术的发展,图书馆的管理模式也在不断升级。传统的手工记录方式已经无法满足现代图书馆的需求,因此,开发一个高效、易用...

    基于SpringBoot的学生网上选课系统论文-java-文档-基于SpringBoot的学生网上选课系统文档

    - Tomcat 8.0/9.0:Apache Tomcat是一个免费开源的Servlet容器,用于部署Java Web应用。 10. **浏览器兼容性** - 支持谷歌浏览器/微软Edge/火狐等主流浏览器。 #### 三、系统功能模块 - **管理员功能** - 用户...

    java-CalendarPad.rar_CalendarP_日历记事提醒_日历记事本_记事本提醒_记事本日历

    提醒功能的实现则需要定时器(如`java.util.Timer`或Java 8的`ScheduledExecutorService`)来定期检查是否有需要提醒的事件。当事件的设定时间与当前时间匹配时,程序会触发提醒,这可以通过弹出对话框、发送邮件、...

    java-记事本

    Java记事本是一款基于Java编程语言开发的简单文本编辑器,它允许用户创建、打开、编辑和保存文本文件。在Java编程中,实现这样的应用程序涉及多个核心知识点,包括图形用户界面(GUI)设计、事件处理、文件I/O操作...

    阿里java开发手册-黄山版(2022最新版)

    《阿里Java开发手册-黄山版(2022最新版)》是阿里巴巴集团为了规范Java开发、提升代码质量和团队协作效率而制定的一份权威指南。这份手册覆盖了Java开发的各个方面,包括基本语法、编程规约、设计模式、异常处理、...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java开源包1

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    21天学通J2EE和一些J2EE书及代码].java.-.Teach.Yourself.J2EE.in.21.Days.-.Sams.(eBook-pdf)

    《21天学通J2EE》一书旨在为读者提供一个系统且高效的学习路径,以掌握Java 2 Enterprise Edition(J2EE)的核心概念和技术。J2EE是Sun Microsystems在2000年推出的一套企业级Java平台标准,它提供了一组组件和服务...

    java-软件工程师试题.pdf

    10. **EJB中的LocalHome接口**用于创建实体Bean的本地实例,提供了一种在容器内部查找和操作Bean的方法。 **程序测试题**涉及类的继承、构造器、变量作用域、静态变量、方法覆盖等概念,具体答案需要根据题目给出的...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java开源包10

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    阿里巴巴开发手册-Java-华山版

    《阿里巴巴开发手册-Java-华山版》不仅是一份规范,更是一份Java程序员的成长指南,它帮助开发者养成良好的编程习惯,提升代码质量和项目管理效率。通过深入理解和实践这份手册,开发者可以更好地融入到大型企业级...

    用Java编写的闹钟程序

    - **闹钟触发**:使用`ScheduledExecutorService`定期检查当前时间是否与设定的闹钟时间匹配,匹配则触发提醒事件。 - **提醒方式**:提醒可以是弹窗、声音播放或者发送通知。在Java中,可以使用`javax.sound`包来...

    java开源包6

    parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG(解析表达式语法)分析设施。你定义的Java源代码的语法规则,直接,没有必要专门编写和维护,外部语法文件。同时保持蒸提供全面的支持,...

Global site tag (gtag.js) - Google Analytics