声明和实例化:

声明: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的更多相关文章

  1. java将一个List赋值给另一个List的4种方法

    编辑 删除 声明:ArrayList a, 仅仅只是声明了一个list变量,其未来作用相当于C++中的引用变量,亦或者相当于一个对象块的索引,但并未为其分配具体的完整的对象所需要的内存空间,其所分配的 ...

  2. java将一个javabean转化为另一个javabean

    公司的项目是用webservice来进行前后台对接,启动后台后需要刷服务才能在前台生成对应的代码,但是有一个很恶心的地方,它给每个service都生成了一个model,于是出现后台只有一个javabe ...

  3. Oracle下批量将一个用户的所有表的select权限赋值给另外一个用户

    起因 为什么会有这篇文章呢? 因为最近在做项目的时候遇到一个问题...实际生产环境中程序datasource登陆的Oracle数据库用户user1不是我们创建的.这个用户没有访问我们业务表的权限(因为 ...

  4. java中将一个字符数组赋值给另一个,两者同时变化

    java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...

  5. 通过反射将一个java对象的属性值转换为一个Map

    将一个java对象的属性值转换为一个Map: import java.beans.BeanInfo;import java.beans.Introspector;import java.beans.P ...

  6. JAVA学习笔记--赋值(“=”)

    参考来源:<java编程思想(第四版)> 见第三章3.4节 基本数据类型存储了实际的数值,并非指向一个对象的引用,故其赋值,就是直接将一个地方的内容复制到了另一个地方.例如,对基本数据类型 ...

  7. 将一个 JavaBean 对象转化为一个 Map

    package com.loan.modules.common.util; import java.beans.BeanInfo; import java.beans.IntrospectionExc ...

  8. atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug

    atitit.java给属性赋值方法总结and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&qu ...

  9. atitit.java方法属性赋值and BeanUtils 1.6.1 .copyProperty的bug

    atitit.java分配给属性值方法and BeanUtils 1.6.1 .copyProperty的bug 1. core.setProperty(o, "materialId&quo ...

随机推荐

  1. javascript连连看

    经测试,IE,Firefox,Chrome,Opera可用. 连接线最多2个拐角.秘籍为:开始后连续输入zycjwdss 还剩0对   对数字 高度: 宽度: // 0)return 1;//IE i ...

  2. HTTP Server to Client Communication

    1. Client browser short polling The most simple solution, client use Ajax to sends a request to the ...

  3. 未来-IOT-Aliyun:阿里云 IOT - 开发者社区

    ylbtech-未来-IOT-Aliyun:阿里云 IOT - 开发者社区 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部 1. https://dev.iot. ...

  4. 酒店web认证802.11x+ROS共享NAT上网

    网络环境: 维也纳酒店-上网方式 web认证上网(wifi有线) 设备-ROS RB952Ui-5AC2ND一台笔记本电脑一台 web认证的三个特征,我们下面ROS的设置就是为了满足下面三个条件来分布 ...

  5. yum搭建 Lamp环境

    yum搭建Lamp yum install -y httpd yum install -y nano rpm 安装 Php7 相应的 yum源 rpm -Uvh https://dl.fedorapr ...

  6. 关于mysql文件导入提示“Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of @@CHARACTER_SET_CLIENT”问题分析

    今天用myssqldump导出数据,然后再导入另外mysql数据库时,提示Variable @OLD_CHARACTER_SET_CLIENT can't be set to the value of ...

  7. Windows下通过pip安装PyTorch 0.4.0 import报错

    问题:通过pip安装PyTorch 0.4.0成功,但是import时报错. import torch  File "D:\Python\Python36\lib\site-packages ...

  8. 记录Redis使用中遇到的两个问题(原子性及数据完整性)

    1.使用Redis作为分布式锁的原子性问题 原方案: ① SETNX $LOCK_BUSI_KEY $REQ_ID ② EXPIRE $LOCK_BUSI_KEY $LOCK_TIME 问题: 使用S ...

  9. 我的第一个flutter程序

    环境搭建好了之后,终于可以开始flutter的学习,废话少说先开始‘Hello World’. 创建好flutter项目之后,打开设备模拟器 打开之后 准备ok,开始编码 -------------- ...

  10. Flask即插视图与tornado比较

    由于公司使用了Tornado框架和Flask框架,之前一直使用的都是Flask框架,已经对url下面紧跟着视图的写法很固执.刚开始接触Tornado框架,对于其url和视图分开的写法思想上无法转变.今 ...