「list拷贝方法java」list拷贝list
本篇文章给大家谈谈list拷贝方法java,以及list拷贝list对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、JAVA一个泛型数组List 怎么复制某几行到另外一个List?
- 2、Java。如何将一个LinkedList里的元素全部复制到另一LinkedList容器里?
- 3、java 如何指定原List其中一部分进行复制到新的list
- 4、java复制List最快方法是什么?
- 5、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的信息别忘了在本站进行查找喔。