javalist復制
Ⅰ java 列表復制問題
jl2.setListData(jl1.getSelectedValue());
voidsetListData(Vector<?> listData)
Constructs a read-only ListModel from a Vector
and calls setModel with this model.
參數類型不正確
Ⅱ java復制List最快方法是什麼
估計沒有快的。復制都是線性的。用多線程都不見得更快。重新設計演算法吧,避免復制
其他的復制方法
List<Integer> a = b.clone();
或
Collections.(a,b);
Ⅲ 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
java將一個list里的數據轉移到另外一個list,可以使用for語句,一次使用add方法,示例如下:
ArrayListlist1=newArrayList();
list1.add("1");
list1.add("2");
list1.add("3");
ArrayListlist2=newArrayList();
list2.add("4");
for(inti=0;i<list1.size();i++)
{
list2.add(list1.get(i));//開始復制一個list的內容到另外一個list
}
//這樣就可以用list2添加list1的所有元素了!。想把他顯示出來可以如下
for(inti=0;i<list2.size();i++)
{
System.out.println(list2.get(i));
}
運行結果如下:
Ⅳ java怎麼將list引用轉為值
直接用 newList = oldList 是引用傳遞,復制的是地址!!!!!!!
改變oldList里的內容同樣也會影響到newList
值傳遞可以用Collections.(newList, oldList)
但需要兩個List的大小一樣,即復制前還需要給newList指定長度
我認為值傳遞更方便的是newList.addAll(oldList)
Ⅵ JAVA一個泛型數組List<> 怎麼復制某幾行到另外一個List<>
你明白一個單純的「?」是什麼意思嗎?它代表的是任意類型。既可以是有繼承關系的,也可以是八竿子都打不到的。比如你想寫的大約是這樣的class
gen{pulbic
<?
extends
Number>void
listMove(List
<?>list1
,
List<?>
list2,Int
i){list2.add(list1.get(i));}}但是請注意這里?號代表的是任意一個Number的子類,這意味著你如果傳入像list1
是List<Long>而list2是List<Double>這樣的同級泛型參數,就像這樣來調用這個函數list1
=
new
List<Long
>();list2
=
new
List<Double>();listMove(list1,
list2,
i);這個函數的目的顯然是把list1
的第i個元素放入list2中,但是請注意list1和list2是不相同,也沒有繼承關系的同級別類型,你正試圖把一個Long
類型放入一個只能夠放置Double類型的List
中,如果java允許你這樣來操作元素,那不是和泛型本身希望提高類型安全的目的背道而馳了嗎?這個問題里你需要注意的是,想要傳遞的類型參數是有關系的,lIst1的?號應該是list2的本身或者子類才對,你應該這樣定義你的方法,你需要對這兩個?號有一定的約束這樣來定義public
<
T
extends
Object>/*這里可以是你自己對類型的約束,我都是約束成了Object的*/void
listMove(List<?
extends
T>
list1//有條件的約束,?應該是T的子類,
List<T>
list2
,int
i){
list2.add(list1.get(i));
}
Ⅶ java把一個list中的內容添加到另一個list中
在JAVA中,想要把一個list中的內容添加至另一個list中,有兩種方法:
採用循環的方法。通過循環第一個ArrayList,然後通過每循環一次的方式,將值賦值給另一個ArrayList。具體代碼實現如下:
2.集合是Java API所提供的一系列類,可以用於動態存放多個對象。集合與數組的不同在於,集合是大小可變的序列,而且元素類型可以不受限定,只要是引用類型。集合中不能放基本數據類型,但可以放基本數據類型的包裝類。 集合類全部支持泛型,是一種數據安全的用法。java列表是集合的一種,並且列表中的元素是有序的,且允許重復。java列表又稱為java 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 如何指定原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]
望採納