导航:首页 > 编程语言 > javalist克隆

javalist克隆

发布时间:2023-03-11 05:56:03

‘壹’ java。如何将一个LinkedList里的元素全部复制到另一LinkedList容器里

LinkedList的Clone()只是浅复制,也就是只能复制对象的引用,而不能再内存中新生成一个对象,所以你复制之后的LinkedList和原始的LinkedList中存储的对象是共享的。
要想不共享,那只能覆盖你原始LinkedList中存放类的Clone()方法,在这个方法中new一个这个类的新实例,将对象的属性赋值给一个新实例。
然后new一个新的LinkedList实例,遍历原始LinkedList中的每个元素,调用这个元素的Clone(),将得到的新元素添加到新的LinkedList中。
大概的代码意思如下
ElementClass是LinkedList中存储的元素的类
public class ElementClass{
private String attributeOne;
......
public void setAttributeOne(String attValue){
this.attributeOne = attValue;
}
/* 覆盖Clone方法,新建一个本类的实例,并将对象的属性值完全复制过去*/
public Object Clone(){
ElementClass newInstance = new ElementClass();//新建一个本类实例
newInstance.setAttributeOne(this.attributeOne);//复制属性
return newInstance;
}
}

LinkedList newList = new LinkedList();//新建一个LinkedList实例
Iterator it = oldList.iterator();获取原始List的遍历器
while(it.hasNext()){
newList .add(((ElementClass) it.next()).clone());//遍历元素,将克隆的新对象加入新的List中
}

‘贰’ java 如何将一个list中的值全部复制到另一个list中

ArrayList<String> list1 = new ArrayList<String>();
list1.add("b");
list1.add("d");
// System.out.println(list1);
ArrayList<String> list2=new ArrayList<String>();
list2.addAll(list1);//将list1添加到list2中
System.out.println(list2);

‘叁’ java.util.ArrayList.clone是不是彻底的克隆

先来看看 源码 java.util.ArrayList.clone()



java.util.ArrayList.clone()返回此ArrayList实例的浅表副本(即本身是不可复制的元素)。


声明

以下是java.util.ArrayList.clone()方法的声明

public Object clone()


返回值

这个方法返回当前ArrayList实例的一个副本。



例子

下面的示例演示java.util.Arraylist.clone()方法的用法。

package com.yii;

import java.util.ArrayList;

public class ArrayListDemo {
public static void main(String args[]) {

// create an empty array list
ArrayList<StringBuilder> arrlist1 = new ArrayList<StringBuilder>();

// use add for new value
arrlist1.add(new StringBuilder("Learning-"));

// using clone to affect the objects pointed to by the references.
ArrayList arrlist2 = (ArrayList) arrlist1.clone();

// appending the string
StringBuilder strbuilder = arrlist1.get(0);
strbuilder.append("list1, list2-both pointing to the same StringBuilder");

System.out.println("The 1st list prints: ");

// both lists will print the same value, printing list1
for (int i = 0; i < arrlist1.size(); i++) {
System.out.print(arrlist1.get(i) + " ");
}

System.out.println("The 2nd list prints the same i.e:");

// both lists will print the same value, printing list2
for (int i = 0; i < arrlist2.size(); i++) {
System.out.print(arrlist2.get(i));
}
}
}


让我们来编译和运行上面的程序,这将产生以下结果:


The 1st list prints:
Learning-list1, list2 - both pointing to the same StringBuilder
The 2nd list prints the same i.e:
Learning-list1, list2 - both pointing to the same StringBuilder



结论:


java.util.ArrayList.clone()是浅层拷贝。

‘肆’ java 如何指定原List其中一部分进行复制到新的list

publicstaticvoidmain(String[]args){

List<String>list1=newArrayList<String>();

List<String>list2=newArrayList<String>();list1.add("1");

list1.add("2");

list1.add("3");list2.add("a");//赋值list1前两个到list2中

System.out.println(list2);

list2.addAll(list1.subList(0,2));//可以先按下标截取,再添加

System.out.println(list2);

}

//运行结果如下:
[a]

[a,1,2]

望采纳

‘伍’ java,,"浅克隆,只复制一个对象 ,深克隆 对象和引用一起复制"有java实例吗不理解啊

对只包含进本类型的类来说,无所谓深克隆。但是一个类包含集合类或者复杂的类,就要考虑二者的区别了。

class Student {
private int id;
private Address address;
private ArrayList<Book> bookList;
}
对于以上类的一个对象a和克隆类 o来说:
浅克隆:
a !=o 但是 a.address == o.address, a.bookList == o.bookList
深克隆:
a !=o 但是 a.address != o.address, a.bookList != o.bookList
并且 bookList中的每个元素不是相同对象。
简言之, 浅克隆只复制本对象,深克隆除了本对象,其儿子、孙子、....都要克隆。
以上纯手敲,有错请包涵。

‘陆’ java复制List最快方法是什么

估计没有快的。复制都是线性的。用多线程都不见得更快。重新设计算法吧,避免复制
其他的复制方法
List<Integer> a = b.clone();

Collections.(a,b);

‘柒’ java把一个list中的内容添加到另一个list中

在JAVA中,想要把一个list中的内容添加至另一个list中,有两种方法:

  1. 采用循环的方法。通过循环第一个ArrayList,然后通过每循环一次的方式,将值赋值给另一个ArrayList。具体代码实现如下:

2.集合是Java API所提供的一系列类,可以用于动态存放多个对象。集合与数组的不同在于,集合是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。集合中不能放基本数据类型,但可以放基本数据类型的包装类。 集合类全部支持泛型,是一种数据安全的用法。java列表是集合的一种,并且列表中的元素是有序的,且允许重复。java列表又称为java list。

阅读全文

与javalist克隆相关的资料

热点内容
海康摄像萤石云服务器 浏览:814
安卓手机怎么改安卓版名 浏览:147
雅思听力807词汇pdf 浏览:897
黄豆私人加密 浏览:192
java分钟转换小时 浏览:245
易语言服务器如何提高 浏览:591
网站主机服务器地址查看 浏览:859
算法学不会能当程序员吗 浏览:119
程序员技术交流研究 浏览:814
javaresponse文件 浏览:734
linuxrar压缩文件夹 浏览:218
魅蓝手机连接不上服务器怎么回事 浏览:379
工行app怎么改已绑定银行卡 浏览:533
oppo芯片程序员 浏览:602
oppok3应用怎么加密 浏览:327
电脑软盘怎么加密码 浏览:815
服务器光交换机有什么用 浏览:708
app上怎么拍蛙小侠 浏览:217
志高聊天app怎么下载 浏览:635
邮政app怎么不能扫付款码 浏览:559