「list拷贝方法java」list拷贝list

博主:adminadmin 2023-01-11 02:48:07 837

本篇文章给大家谈谈list拷贝方法java,以及list拷贝list对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA一个泛型数组List 怎么复制某几行到另外一个List?

你明白一个单纯的“?”是什么意思吗?它代表的是任意类型。既可以是有继承关系的,也可以是八竿子都打不到的。比如你想写的大约是这样的class gen{pulbic ? extends Numbervoid listMove(List ?list1 , List? list2,Int i){list2.add(list1.get(i));}}但是请注意这里?号代表的是任意一个Number的子类,这意味着你如果传入像list1 是ListLong而list2是ListDouble这样的同级泛型参数,就像这样来调用这个函数list1 = new ListLong ();list2 = new ListDouble();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的子类, ListT list2 ,int i){

list2.add(list1.get(i));

}

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

 public static void main(String[] args) {    

   ListString list1 = new ArrayListString();

   ListString list2 = new ArrayListString();

   

   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复制List最快方法是什么?

估计没有快的。复制都是线性的。用多线程都不见得更快。重新设计算法吧,避免复制

其他的复制方法

ListInteger a = b.clone();

Collections.copy(a,b);

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

ArrayListString list1 = new ArrayListString();

list1.add("b");

list1.add("d");

// System.out.println(list1);

ArrayListString list2=new ArrayListString();

list2.addAll(list1);//将list1添加到list2中

System.out.println(list2);

list拷贝方法java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于list拷贝list、list拷贝方法java的信息别忘了在本站进行查找喔。