那样list2set('a',list1get('a')),就可以了,
是不是类似这个意思,String a='123';
List<String> list1=new ArrayList<String>();
List<String> list2=new ArrayList<String>();
list1add(a);
a='4567';
list2add(a);
你想把list1中a元素的值替换为list2的a元素的值?这样其实是不行的,因为这里面的a相当于个中间引用,真正存进去的是‘123’和‘4567’,list1,list2里面存在的就只有这个值,没有a,这是由于java机制是值copy过去的,是不能这样使用的,你可以使用map
if(listsize()-number==1)这个一定会成立,因为int number=listsize()-1
List<Item> list =itemDaofindList(param);int number=listsize()-1;
int k=0;
for(Item item:list){
if(number==k){// number等于297,当k等于297,也就是在最后一条时执行命令
Opa pa = new Opa();
pasetName("李刚");
opaDaoupdate(pa);
}
k++;
}
import copy
List2=copydeepcopy(List1)
这样赋值,List2初始值和List1一样,因为是深度复制List1中的元素,所有深层元素都引用的是不同的对象,List1的任何改变不会影响List2
////////////////that's mine
import javautil;
public class StudentSorter{
public static void main(String [] as){
Student a = new Student("a", 80);
Student b = new Student("b", 90);
Student c = new Student("c", 70);
List<Student> list = new ArrayList<Student>();
listadd(a);
listadd(b);
listadd(c);
Systemoutprintln("未修改前:");
for(Student s: list){
Systemoutprintln(s);
}
asetMark(100);
listset(0, a);
Systemoutprintln("已修改后:");
for(Student s: list){
Systemoutprintln(s);
}
}
}
class Student implements Comparable{
private String name;
private int mark;
public Student(){}
public Student(String n, int m) {
name = n;
mark = m;
}
public void setMark(int m){
mark = m;
}
public int getMark(){
return mark;
}
public int compareTo(Object o) {
if(o instanceof Student) {
Student s = (Student)o;
return sgetMark() - thisgetMark();
} else {
return -1;
}
}
public String toString(){
return name + ": " + mark;
}
}
做法就是上面的。
扩展资料:
java中ArrayList用法详解
基本的ArrayList,长于随机访问元素,但是在List中间插入和移除元素时较慢,并且ArrayList的 *** 作不是线程安全的。
一般在单线程中才使用ArrayList,而在多线程中一般使用Vector或者CopyOnWriteArrayList。
1、使用ArrayList 简单的例子:
ArrayList<Integer> a=new ArrayList<Integer>();
for(int i=0; i<n; i++){
aadd(scnextInt()); //为数组增加int型数
}
aremove(0);//删除第一个元素;
m=2;
aadd(m); //在数组末尾添加
aadd(4,2);// 在指定位置添加元素,在第5个位置添加2
aremove(2); // 删除指定位置上的元素
aremove((Object)3); // 删除指定元素
aclear(); // 清空ArrayList
Systemoutprintln("ArrayList contains 5 is: " + acontains(5));// 判断arrayList是否包含5
Systemoutprintln("ArrayList is empty: " + arrayListisEmpty()); // 判断ArrayList是否为空
2、toArray用法
有时候,当我们调用ArrayList中的 toArray(),可能遇到过抛出javalangClassCastException异常的情况,
这是由于toArray() 返回的是 Object[] 数组,将 Object[] 转换为其它类型(如,将Object[]转换为的Integer[])则会抛出javalangClassCastException异常,因为Java不支持向下转型。
所以一般更常用的是使用另外一种方法进行使用:
<T> T[] toArray(T[] a)
调用toArray(T[] a)返回T[]可通以下方式进行实现:
// toArray用法
// 第一种方式(最常用)
Integer[] integer = arrayListtoArray(new Integer[0]);
// 第二种方式(容易理解)
Integer[] integer1 = new Integer[arrayListsize()];
arrayListtoArray(integer1);
// 抛出异常,java不支持向下转型
//Integer[] integer2 = new Integer[arrayListsize()];
//integer2 = arrayListtoArray();
ArrayList<Integer> a = new ArrayList<Integer>();
实例:
import javautilArrayList;
import javautilIterator;
public class ArrayListDemo {
public static void main(String[] srgs){
ArrayList<Integer> arrayList = new ArrayList<Integer>();
Systemoutprintf("Before add:arrayListsize() = %d\n",arrayListsize());
arrayListadd(1);
arrayListadd(3);
arrayListadd(5);
arrayListadd(7);
arrayListadd(9);
Systemoutprintf("After add:arrayListsize() = %d\n",arrayListsize());
Systemoutprintln("Printing elements of arrayList");
// 三种遍历方式打印元素
// 第一种:通过迭代器遍历
Systemoutprint("通过迭代器遍历:");
Iterator<Integer> it = arrayListiterator();
while(ithasNext()){
Systemoutprint(itnext() + " ");
}
Systemoutprintln();
// 第二种:通过索引值遍历
Systemoutprint("通过索引值遍历:");
for(int i = 0; i < arrayListsize(); i++){
Systemoutprint(arrayListget(i) + " ");
}
Systemoutprintln();
// 第三种:for循环遍历
Systemoutprint("for循环遍历:");
for(Integer number : arrayList){
Systemoutprint(number + " ");
}
// toArray用法
// 第一种方式(最常用)
Integer[] integer = arrayListtoArray(new Integer[0]);
// 第二种方式(容易理解)
Integer[] integer1 = new Integer[arrayListsize()];
arrayListtoArray(integer1);
// 抛出异常,java不支持向下转型
//Integer[] integer2 = new Integer[arrayListsize()];
//integer2 = arrayListtoArray();
Systemoutprintln();
// 在指定位置添加元素
arrayListadd(2,2);
// 删除指定位置上的元素
arrayListremove(2);
// 删除指定元素
arrayListremove((Object)3);
// 判断arrayList是否包含5
Systemoutprintln("ArrayList contains 5 is: " + arrayListcontains(5));
// 清空ArrayList
arrayListclear();
// 判断ArrayList是否为空
Systemoutprintln("ArrayList is empty: " + arrayListisEmpty());
}
}
/
Before add:arrayListsize() = 0
After add:arrayListsize() = 5
Printing elements of arrayList
通过迭代器遍历:1 3 5 7 9
通过索引值遍历:1 3 5 7 9
for循环遍历:1 3 5 7 9
ArrayList contains 5 is: true
ArrayList is empty: true
/
List<String> strs=new ArrayList<String>();strsadd("a");
strsadd("b");
strsadd("c");
Systemoutprintln(strstoString());
for(int i=0;i<strssize();i++ ){
if(strsget(i)equals("b")){
strsremove(i);
strsadd(i,"4");
}
}
Systemoutprintln(strstoString());
不知道你说的具体是哪种,但是这种是可以实现的。import
copyList2=copydeepcopy(List1)这样赋值,List2初始值和List1一样,因为是深度复制List1中的元素,所有深层元素都引用的是不同的对象,List1的任何改变不会影响List21、首先你要确定数组的类型(比如 整型数组、字符串数组、字节数组等类型)
2、其次你要能访问到数组元素,即:明确访问数组 元素的方法。
3、按照1和2中确认的类型和方法来对数组元素的值进行修改
例如:
int[] a={1,2,3,4,5,6}; //该数组类型为一维的整型数组,数组元素的类型都为整数类型
针对 该数组,访问该一维数组可以通过下标的方法:a[i] ,i为数组元素的下标(i=0 表示数组的第1个元素,依次类推),如果要修改该数组的第3元素的值为 30 ,那么i=2,可以通过 a[2]=30; 这个语句实现。
用listset(index, element)。
具体 *** 作步骤如下:
import javautil;
class Demo
{
public static void main(String[] args)
{
List<String> list=new ArrayList<String>()
listadd("张三");
listadd("李四");
listadd("王五");
listadd("赵六");
listadd("田七");
//打印原来集合
Systemoutprintln("原集合数据:"+list);
if(listcontains("王五"))//判断集合是否包含某元素
{
指定元素替换列表中指定位置的元素。
}
//打印修改后集合
Systemoutprintln("修改后集合数据:"+list);
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)