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 ...
随机推荐
- ES - Index Templates 全局index模板
1.Index Templates 之前我们聊过Dynamic template,它作用范围是特定的Index,如果我们想针对全局Index进行设置该如何操作呢? Index Templates 可以 ...
- 多线程、互斥锁、异步、GIL
多线程-threading python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便被使用 from threading imp ...
- amd显卡更新最新驱动鼠标顿卡的解决方法
测试了下游戏,很稳.方法:在卡顿的状态下打开RADEON设置,依次点击显示器→规格→覆盖,将支持HDCP选为禁用,按提示重启即可.
- Emacs下scheme编程环境的设置
Scheme编程环境搭建 1.1 安装Chez Scheme git clone https://github.com/cisco/ChezScheme.git cd ChezScheme ./con ...
- (整理)REHL6.5_安装本地yum
1.检查是否安装yum包 查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包:rpm -qa |grep yum 2 删除redhat自带的yum包 rpm -qa|grep yum|xa ...
- WPF之设计UI界面
一些后面再细看的内容: Document Outline窗口有什么帮助? 1.Panel控件 为了便于组织窗口内很多的UI元素,要使用Panel控件(也称为布局管理器).Panel容纳所有的窗口UI元 ...
- 关于Jupyter Notebook快捷操作
Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的 ...
- 【BZOJ2054】疯狂的馒头(并查集)
/* 经典思路, 倒序并查集处理即可 */ #include<cstdio> #include<algorithm> #include<cstring> #incl ...
- Flink安装部署
官网:https://ci.apache.org/projects/flink/flink-docs-release-1.7/ops/deployment/cluster_setup.html cd ...
- spring面向接口编程
(1)创建一个接口 package com.min.dao; public interface UserDao { public void save(String uname, String pwd) ...