当前位置:首页 » 编程语言 » javalist的复制

javalist的复制

发布时间: 2022-07-27 01:57:24

A. 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]

望采纳

B. java拷贝文件中一行内容

可以按行读取一行,然后写入你指定的文件,完毕。
可以通过Java的IO流实现txt文本的读取,然后用readline实现按行读取。具体代码如下:
package test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Test {
public static double[] writeToDat(String path) {
File file = new File(path);
List list = new ArrayList();
double[] nums = null;
try {
BufferedReader bw = new BufferedReader(new FileReader(file));
String line = null;
//因为不知道有几行数据,所以先存入list集合中
while((line = bw.readLine()) != null){
list.add(line);
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
//确定数组长度
nums = new double[list.size()];
for(int i=0;i<list.size();i++){
String s = (String) list.get(i);
nums[i] = Double.parseDouble(s);
}
return nums;
}
public static void main(String[] args) {
String path = "d:/file4.txt";
double[] nums = writeToDat(path);
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}

C. 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中
}

D. 如何把一个arraylist 拷贝到另一个arraylist

1、通用的就是循环添加
2、根据各种语言,一般都有addall()或者add等接口直接把一个list添加到另一个list,比如java就有addall方法

E. 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));
}

F. java复制List最快方法是什么

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

Collections.(a,b);

G. java list赋值问题

操作:newList = strList

说明:由于strList是一个对象,所以它们之间是按引用传递的,即是说newList和strList这两个对象指向的引用地址是同一个,所以从这个方面,可以说newList和strList是一样的。

操作:改变newList的值,strList也变了?

答:strList的值也是会改变的,这个是因为改变newList的值,即是改变了newList指向地址的值。而二者指向的地址的值是同一个,所以会一起改变。

其实这里主要理解区分好 按值传递 还是 按引用传递。

H. 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);

I. 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));
}

运行结果如下:

热点内容
世界服务密码是多少 发布:2025-01-25 04:42:52 浏览:48
专车配置有哪些 发布:2025-01-25 04:42:46 浏览:569
java培训班收费 发布:2025-01-25 04:37:53 浏览:766
密码锁如何密码解锁 发布:2025-01-25 04:25:16 浏览:385
ebay如何上传产品 发布:2025-01-25 04:04:37 浏览:823
java判断是否手机访问权限 发布:2025-01-25 04:02:28 浏览:807
天龙八部3困难福地需要什么配置 发布:2025-01-25 04:01:49 浏览:409
phpmysql网站源码 发布:2025-01-25 03:56:49 浏览:755
安卓手机华为手机哪个牌子好 发布:2025-01-25 03:55:55 浏览:25
比亚迪发动机压缩比 发布:2025-01-25 03:55:16 浏览:329