声明和实例化:

声明: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. xampp启动MySQL出现Error: MySQL shutdown unexpectedly.

    20175227张雪莹 2018-2019-2 <Java程序设计> xampp启动MySQL出现Error: MySQL shutdown unexpectedly. 问题 本周在学习教 ...

  2. Ubuntu14.04 使用本地摄像头跑ORB SLAM2(暂未完成)

    嗯 这个方法我暂时弄不出来,用了另外一个方法:SLAM14讲 第一次课 使用摄像头或视频运行 ORB-SLAM2 前面的准备: Ubuntu14.04安装 ROS 安装步骤和问题总结 Ubuntu14 ...

  3. Ubuntu16.04 apt源更新

    更新源 安装好系统后,先更新源,方便后面能比较快地下载各种软件包. 备份/etc/apt/sources.list,然后将内容全部替代为: # deb cdrom:[Ubuntu 16.04 LTS ...

  4. springmvc读取服务器磁盘图片,显示于前台页面

    在项目中的config目录下有一个文件,在后台程序中获取 它并使用. springmvc提供一个方法:File file = new ClassPathResource("NonTaxVou ...

  5. js 合并多行表格

    最近在整理之前的工作记录,有很多信息是借鉴他人,亲测有效的,遗憾的是当初记录时没有留下来源,如侵权请联系fourOfour@163.com. 1.autoRowSpan函数的第一个参数是table的i ...

  6. VMWare给macos虚拟机扩容方法

    一开始在VMWareWorkStation上创建macos虚拟机时,我考虑到物理硬盘大小有限,只分配了34G,随着不断的使用,虚拟机消耗的虚拟磁盘逐渐增长,因磁盘空间不足而导致无法在虚拟机中使用xco ...

  7. Kafka安装及开启SASL_PLAINTEXT认证(用户名和密码认证)

    前些日子要封装一个kafka的客户端驱动,配置了下kafka环境,发现配置复杂度完爆rabbitmq很多倍啊,而且发布订阅模式使用起来也很麻烦,可能就胜在分布式了吧. kafka需要java环境,自行 ...

  8. To be taught if i am fortunate

    此博客算是我自娱自乐的海洋球池吧. 由于我十分的菜并且文笔拙劣,所以您可能并不能在这找到什么有用的信息或者好玩的东西(或者exciting的内容). 如果您能指出我的一些错误,我将十分感激.

  9. 最大化等比例测试演化Demo-传统方法

    demo-1: <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  10. ubuntu下的git版本创建

    一.git的特点 二.gei的安装和配置 1.安装命令如下 sudo apt-get install git 2.安装成功后输入 git 3.创建版本库 git init 4.使用 先创建一个txt文 ...