導航:首頁 > 編程語言 > 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克隆相關的資料

熱點內容
去體驗解壓房 瀏覽:605
單片機一鍵中斷響應 瀏覽:638
唐浩明pdf 瀏覽:836
程序員土木 瀏覽:71
android如何與web伺服器交互 瀏覽:600
蘋果小風扇app怎麼下 瀏覽:948
杭州it程序員對身體好不好 瀏覽:533
高新區編程加盟找哪家 瀏覽:24
伺服器什麼樣的好賣 瀏覽:142
單片機原理及應用第二版例題答案 瀏覽:962
base64encoderjava 瀏覽:486
linux視頻轉換 瀏覽:698
linux與unixshell編程指南 瀏覽:135
vb6反編譯程序錯誤 瀏覽:123
伺服器弄掛有什麼影響 瀏覽:304
安卓軟體為什麼運行不了 瀏覽:528
什麼安卓手機是四方的 瀏覽:479
雲伺服器廠商租用多少錢 瀏覽:355
平安車貸解壓要多久 瀏覽:418
樂一php程序員待遇 瀏覽:164