java将一个List赋值给另一个List
声明和实例化:
声明:ArrayList a, 仅仅只是声明了一个list变量,其未来作用相当于C++中的引用变量,亦或者相当于一个对象块的索引,但并未为其分配具体的完整的对象所需要的内存空间,其所分配的空间仅仅只是"a"变量所需空间;
实例化:实例化的过程是为对象分配完整的所需内存空间。此时,对象a才是该list的一个实例,然后将分配的内存地址返回给定义的变量“a”;
java的实例化:
1. 使用new关键词创建对象(c++)。
2.通过jdk中提供的工厂方法返回对象。如String str = String.vlaueOf("test");
3.通过反射机制。最经常使用的则是JDBC: String driver = "com.mysql.jdbc.Driver";Class.forName(driver);
4.通过类的clone()方法。
5.通过反序列化手段。
1.对象引用:
import java.util.ArrayList;
import java.util.List; public class Test { public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add(new String("1"));
list1.add(new String("2")); System.out.println("list1:" + list1); List<String> list2 = new ArrayList<String>();
list2.add(new String("1")); System.out.println("list2:" + list2); List<String> listTemp = new ArrayList<>();
listTemp = list1;
listTemp.removeAll(list2); System.out.println("操作后的list1:" + list1);
}
}
测试结果:
此时list2对象相当与list1对象的引用,而并不是将list1对象的值单纯的传递给list2对象。即:list2对象的操作将直接改变list1对象。如list2.add(new String("3"));结果list1中也包含了“3”;
2.单纯的把值赋予对方方式多种。如下:
方式一:
import java.util.ArrayList;
import java.util.List; public class Test { public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add(new String("1"));
list1.add(new String("2")); System.out.println("list1:" + list1); List<String> list2 = new ArrayList<String>();
list2.add(new String("1")); System.out.println("list2:" + list2); List<String> listTemp = new ArrayList<>(list1);
listTemp.removeAll(list2); System.out.println("操作后的list1:" + list1);
}
}
测试结果:
方式二:
import java.util.ArrayList; public class Test { public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<String>();
list1.add(new String("1"));
list1.add(new String("2")); System.out.println("list1:" + list1); ArrayList<String> list2 = new ArrayList<String>();
list2.add(new String("1")); System.out.println("list2:" + list2); ArrayList<String> listTemp = (ArrayList<String>) list1.clone();
listTemp.removeAll(list2); System.out.println("操作后的list1:" + list1);
}
}
测试结果:
方式三:
import java.util.ArrayList;
import java.util.List; public class Test { public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add(new String("1"));
list1.add(new String("2")); System.out.println("list1:" + list1); List<String> list2 = new ArrayList<String>();
list2.add(new String("1")); System.out.println("list2:" + list2); List<String> listTemp = new ArrayList<>();
listTemp.addAll(list1);
listTemp.removeAll(list2); System.out.println("操作后的list1:" + list1);
}
}
测试结果:
方式四:
import java.util.ArrayList;
import java.util.List; public class Test { public static void main(String[] args) {
List<String> list1 = new ArrayList<String>();
list1.add(new String("1"));
list1.add(new String("2")); System.out.println("list1:" + list1); List<String> list2 = new ArrayList<String>();
list2.add(new String("1")); System.out.println("list2:" + list2); List<String> listTemp = new ArrayList<>();
for(String str : list1){
listTemp.add(str);
}
listTemp.removeAll(list2); System.out.println("操作后的list1:" + list1);
}
}
测试结果:
java将一个List赋值给另一个List的更多相关文章
- java将一个List赋值给另一个List的4种方法
编辑 删除 声明:ArrayList a, 仅仅只是声明了一个list变量,其未来作用相当于C++中的引用变量,亦或者相当于一个对象块的索引,但并未为其分配具体的完整的对象所需要的内存空间,其所分配的 ...
- java将一个javabean转化为另一个javabean
公司的项目是用webservice来进行前后台对接,启动后台后需要刷服务才能在前台生成对应的代码,但是有一个很恶心的地方,它给每个service都生成了一个model,于是出现后台只有一个javabe ...
- Oracle下批量将一个用户的所有表的select权限赋值给另外一个用户
起因 为什么会有这篇文章呢? 因为最近在做项目的时候遇到一个问题...实际生产环境中程序datasource登陆的Oracle数据库用户user1不是我们创建的.这个用户没有访问我们业务表的权限(因为 ...
- java中将一个字符数组赋值给另一个,两者同时变化
java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...
- 通过反射将一个java对象的属性值转换为一个Map
将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...
- JAVA学习笔记--赋值(“=”)
参考来源:<java编程思想(第四版)> 见第三章3.4节 基本数据类型存储了实际的数值,并非指向一个对象的引用,故其赋值,就是直接将一个地方的内容复制到了另一个地方.例如,对基本数据类型 ...
- 将一个 JavaBean 对象转化为一个 Map
package com.loan.modules.common.util; import java.beans.BeanInfo; import java.beans.IntrospectionExc ...
- atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug
atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&qu ...
- atitit.java方法属性赋值and BeanUtils 1.6.1 .copyProperty的bug
atitit.java分配给属性值方法and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&quo ...
随机推荐
- Win10系统下Anaconda下安装多种Python函数库
建议直接安装Anaconda,这是一个包含Numpy,Pandas,Sklearn等函数库的计算机科学软件包,下面的软件可以在此环境下进行安装下载. 一.计算机视觉 1. OpenCV图像处理 在ht ...
- close_wait状态和time_wait状态(TCP连接)
1.CLOSE_WAIT的简单解决方案 不久前,我的Socket Client程序遇到了一个非常尴尬的错误.它本来应该在一个socket长连接上持续不断地向服务器发送数据,如果socket连接断开,那 ...
- Bacnet协议IP采集开发 总结
一.开发准备 a.模拟器 VTS和BACnetDeviceSimulator b.主站 BACnetScan c.参考文档 http://wenku.baidu.com/view/3052 ...
- 基于STM8的IIC协议---STM8-第五章
1. 综述 I2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备. 它是由数据线SDA和时钟SCL构成的串行总线,可 ...
- listview-android:打造万能通用适配器(转)
转载:https://blog.csdn.net/q649381130/article/details/51781921: 1.前言 listview作为安卓项目中一个的明星控件,它的适配器的写法是广 ...
- docker-compose hello word
Compose 是 Docker 容器进行编排的工具, 是一个整合发布docker应用的利器,可定义和运行多容器的应用,在 Compose 中你可以使用 YAML 文件来配置你的应用服务.然后,只需要 ...
- python 字符串转16进制函数
需要用python处理16进制的文本,比如像下面这个文本 40 80 C0 40 80 C0 40 80 C0 40 80 C0 40 BF CC 40 80 C0 40 80 C0 40 80 C0 ...
- List集合去重
本篇包含了两种去重,一种是List集合去重,一种是两个List集合去重合并 List集合去重,一般是两种方式,一种是遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list ...
- Linux内核中的printf实现
1 #ifndef __PRINT_H_ 2 #define __PRINT_H_ 3 4 void print(char* fmt, ...); 5 void printch(char ch); 6 ...
- Java中的升序和降序
package ah; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; impo ...