Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java中list集合深复制

Java中list集合深复制

作者头像
HUC思梦
发布于 2020-09-03 09:15:47
发布于 2020-09-03 09:15:47
5.3K00
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CopyTest {

    public static void main(String[] args) {

        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }

        //list深度拷贝
        List<Integer> newList = new ArrayList<>();
        CollectionUtils.addAll(newList, new Object[list.size()]);
        Collections.copy(newList, list);
        newList.set(0, 10);
        
        System.out.println("原list值:" + list);
        System.out.println("新list值:" + newList);
    }
}

原list值:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

新list值:[10, 1, 2, 3, 4, 5, 6, 7, 8, 9]

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-01-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android Binder 机制——AIDL 的使用和原理分析
为了便于理解,这里用一个 Demo 来展示 AIDL 的实现过程:Activity 作为 Client 与作为 Server 端的远程 Service 实现数据交互,在绑定远程 Service 之后,点击 AddUser 后 Service 会将 Client 端传进来的 User 对象加入列表中,点击 GetSize 后远程 Service 将会把列表的长度返回给客户端。建议在继续阅读之前先查看或者运行一下项目源码:
没关系再继续努力
2021/12/01
8110
Android--Binder机制与AIDL
Binder机制核心点就是利用mmap开辟一块空间,使得多个进程可以访问,不仅接收端持有该映射,内核空间也持有,由于相当于内存,所以拷贝只需要一次:从发送端进程的工作内存(用户空间)到主内存(内核空间)的内存映射中,接收端也就相当于接收到了,想要深入理解可以查看Java--深入理解JMM模型、Java并发特性
aruba
2021/12/06
9710
Android--Binder机制与AIDL
AIDL初步理解
如果你是普通app开发,有可能遇不到跨进程访问数据。在车厂,智能座舱开发,跨进程访问数据是很平常的事,比如车机账户系统,很多模块都要获取当前车机账户信息,那账户系统就会提供相应数据给其他模块,账户系统和其他模块不属于同一个进程,这个时候就出现跨进程场景,Android系统为我们提供了一种技术方案:AIDL
笔头
2022/10/30
4280
一步步深入解析AIDL
在 Android 系统中,进程间通信 (IPC) 是一种很重要的机制。IPC 产生的原因是某些情况下需要在两个进程之间进行一些数据的交换。而在深入学习 Android 的过程中难免会遇到 IPC 的相关问题,比如常见的有在自己的应用程序中读取手机联系人的信息,这就涉及到 IPC 了。因为自己的应用程序是一个进程,通讯录也是一个进程,只不过获取通讯录的数据信息是通过 Content Provider 的方式来实现的。
俞其荣
2022/07/28
7040
一步步深入解析AIDL
Android 进阶9:进程通信之 AIDL 解析
张拭心 shixinzhang
2018/01/05
1.2K0
Android 进阶9:进程通信之 AIDL 解析
Android进阶必备:跨进程通讯机制
Binder机制是Android系统提供的跨进程通讯机制,这篇文章开始会从Linux相关的基础概念知识开始介绍,从基础概念知识中引出Binder机制,归纳Binder机制与Linux系统的跨进程机制的优缺点,接着分析Binder的通信模型和原理,而Binder机制最佳体现就是AIDL,所以在后面会分析AIDL的实现原理,最后简单的提下AMS的Binder体系,整篇文章中间会穿插有IBinder、Binder、Parcel的介绍,整篇文章阅读难度不大,不会涉及到framework层的Binder原理,AIDL部分需要有AIDL的使用基础
陈宇明
2020/12/15
7240
Android进阶必备:跨进程通讯机制
【Binder 机制】AIDL 分析 ( 创建 AIDL 文件 | 创建 Parcelable 类 | AIDL 中使用 Parcelable 类 | 编译工程生成 AIDL 对应的Java源文件 )
右键点击 " aidl " 目录 , 选择 " New / AIDL / AIDL File " 文件 ;
韩曙亮
2023/03/29
1.3K0
【Binder 机制】AIDL 分析 ( 创建 AIDL 文件 | 创建 Parcelable 类 | AIDL 中使用 Parcelable 类 | 编译工程生成 AIDL 对应的Java源文件 )
听说你Binder机制学的不错,来面试下这几个问题(三)
很多文章将Binder框架定义了四个角色:Server,Client,ServiceManager、以及Binder驱动,但这容易将人引导到歧途:好像所有的Binder服务都需要去ServiceManager去注册才能使用,其实不是这样。例如,平时APP开发通过bindService启动的服务,以及有些自己定义的AIDL远程调用,都不一定都ServiceManager注册这条路,个人理解:ServiceManager主要功能是:管理系统服务,比如AMS、WMS、PKMS服务等,而APP通过的bindService启动的Binder服务其实是由SystemServer的ActivityManagerService负责管理。这篇主要关注Android APP Java层Binder通信一些奇葩点:
看书的小蜗牛
2018/06/29
2.1K0
听说你Binder机制学的不错,来面试下这几个问题(三)
Android开发之漫漫长途 IX——彻底掌握Binder
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索》以及《深入理解Android 卷Ⅰ,Ⅱ,Ⅲ》中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!!另外,本系列文章知识可能需要有一定Android开发基础和项目经验的同学才能更好理解,也就是说该系列文章面向的是Android中高级开发工程师。
LoveWFan
2018/08/07
5750
Android开发之漫漫长途 IX——彻底掌握Binder
【Binder 机制】AIDL 分析 ( 分析 AIDL 文件生成的 Java 源文件 | Binder | IBinder | Stub | Proxy )
在上一篇博客 【Binder 机制】AIDL 分析 ( 创建 AIDL 文件 | 创建 Parcelable 类 | AIDL 中使用 Parcelable 类 | 编译工程生成 AIDL 对应的Java源文件 ) 创建了 AIDL 文件 , 并编译生成了 AIDL 文件对应的 Java 源文件 , 现在开始分析生成在 " AIDL_Demo\app\build\generated\aidl_source_output_dir\debug\out\kim\hsl\aidl_demo " 目录 中的 " IMyAidlInterface.java " 源文件 ;
韩曙亮
2023/03/29
1.9K0
不得不说的Android Binder机制与AIDL
说起Android的进程间通信,想必大家都会不约而同的想起Android中的Binder机制。而提起Binder,想必也有不少同学会想起初学Android时被Binder和AIDL支配的恐惧感。但是作为一个Android开发者,Binder是我们必须掌握的知识。因为它是构架整个Android大厦的钢筋和混凝土,连接了Android各个系统服务和上层应用。只有了解了Binder机制才能更加深入的理解Android开发和Android Framework。这也是为什么无论是《Android开发艺术探索》还是《深入理解Android内核涉及思想》这些进阶类书籍把进程间通信和Binder机制放到靠前章节的原因,它太重要了,重要到整个Android Framework都离不开Binder的身影。
没关系再继续努力
2021/12/28
6380
Android aidl流程简单分析
我们通过写一个从服务端(另外一个进程)获取用户名和密码作为demo来进行源码讲解。
曾大稳
2018/09/11
5660
Android aidl流程简单分析
Java源码阅读绘图规范手册--[捷特版]
工欲善其事必先利其器,磨刀不误砍柴工 最近打算去深读源码,感觉不画图去分析源码根本理不清,也说不清 UML是分析类和类的关系,具体的类内部貌似没有图形机制,没有条件就创造条件呗 借此机会本人自定
张风捷特烈
2019/01/28
7650
Android点将台:金科玉律[-AIDL-]
张风捷特烈
2024/02/08
1500
Android点将台:金科玉律[-AIDL-]
【漫画技术】Android跨进程通信
Tips:4个环节,共计约9小时的精心打磨完成上线,同时也非常感谢参与审稿的同学。
用户2802329
2018/08/07
3080
【漫画技术】Android跨进程通信
源码分析——从AIDL的使用开始理解Binder进程间通信的流程
Binder通信是 Android 系统架构的基础。本文尝试从 AIDL 的使用开始理解系统的 Binder通信。
阳仔
2019/07/31
9880
源码分析——从AIDL的使用开始理解Binder进程间通信的流程
AIDL源码解析in、out和inout
为什么会想写这篇文章,只因为一个error idl.exe E 4928 5836 type_namespace.cpp:130] 'Book' can be an out type, so you must declare it as in, out or inout. 看过上一篇文章Android:IPC之AIDL的学习和总结的同学都知道这是因为在AIDL文件中使用非常规类型作为参数传递的时候没有标记指向tag,那么到底为什么会是这样子的呢,作为一个好奇宝宝我想好好看看。
静默加载
2020/05/29
2K0
【Binder 机制】AIDL 分析 ( AIDL 通信完整流程梳理 )
AIDL 文件 IMyAidlInterface.aidl 在客户端和服务端都有 , 编译时 , 都会在 " build\generated\aidl_source_output_dir\debug\out\kim\hsl\aidl_demo " 目录生成 IMyAidlInterface.java 源文件 ;
韩曙亮
2023/03/29
1.5K0
架构·微服务架构·ANDROID 源码分析(二)
上一篇的文章架构·微服务架构详细描述微服务架构相关的理论基础,为这一篇文章打好了理论基础。这篇文章将站在 Android Framework 设计者的角度上,剖析在 Android 中应用的微服务架构。
幺鹿
2018/08/21
7260
架构·微服务架构·ANDROID 源码分析(二)
Android AIDL跨进程通信
aidl跨进程通信的步骤: 1、创建aidl文件。 2、build后生成aidl对应的java文件。 3、创建服务端Service。 4、创建客户端Activity,bindService(),获取IBinder的proxy 。
用户9854323
2022/10/04
6600
Android AIDL跨进程通信
相关推荐
Android Binder 机制——AIDL 的使用和原理分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验