java中使用ArrayList如何修改里面的内容.

程序请看:http://zhidao.baidu.com/question/50252674.html
如果我要对Score进行修改应该怎么做呢?

////////////////that's mine

import java.util.*;

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>();

list.add(a);

list.add(b);

list.add(c);

System.out.println("未修改前:");

for(Student s: list){

System.out.println(s);

}

a.setMark(100);

list.set(0, a);

System.out.println("已修改后:");

for(Student s: list){

System.out.println(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 s.getMark() - this.getMark();

} 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++){  

a.add(sc.nextInt());  //为数组增加int型数

}  

a.remove(0);//删除第一个元素;

m=2;  

a.add(m);  //在数组末尾添加

a.add(4,2);// 在指定位置添加元素,在第5个位置添加2   

a.remove(2); // 删除指定位置上的元素                

a.remove((Object)3); // 删除指定元素

a.clear(); // 清空ArrayList         

System.out.println("ArrayList contains 5 is: " + a.contains(5));// 判断arrayList是否包含5        

System.out.println("ArrayList is empty: " + arrayList.isEmpty()); // 判断ArrayList是否为空   

2、toArray用法

有时候,当我们调用ArrayList中的 toArray(),可能遇到过抛出java.lang.ClassCastException异常的情况,

这是由于toArray() 返回的是 Object[] 数组,将 Object[] 转换为其它类型(如,将Object[]转换为的Integer[])则会抛出java.lang.ClassCastException异常,因为Java不支持向下转型。 

所以一般更常用的是使用另外一种方法进行使用:

<T> T[] toArray(T[] a)

调用toArray(T[] a)返回T[]可通以下方式进行实现:

// toArray用法

// 第一种方式(最常用)

Integer[] integer = arrayList.toArray(new Integer[0]);

// 第二种方式(容易理解)

Integer[] integer1 = new Integer[arrayList.size()];

arrayList.toArray(integer1);

// 抛出异常,java不支持向下转型

//Integer[] integer2 = new Integer[arrayList.size()];

//integer2 = arrayList.toArray();

ArrayList<Integer> a = new  ArrayList<Integer>();  

实例:

import java.util.ArrayList;

import java.util.Iterator;

public class ArrayListDemo {

public static void main(String[] srgs){

ArrayList<Integer> arrayList = new ArrayList<Integer>();

System.out.printf("Before add:arrayList.size() = %d\n",arrayList.size());

arrayList.add(1);

arrayList.add(3);

arrayList.add(5);

arrayList.add(7);

arrayList.add(9);

System.out.printf("After add:arrayList.size() = %d\n",arrayList.size());

System.out.println("Printing elements of arrayList");

// 三种遍历方式打印元素

// 第一种:通过迭代器遍历

System.out.print("通过迭代器遍历:");

Iterator<Integer> it = arrayList.iterator();

while(it.hasNext()){

System.out.print(it.next() + " ");

}

System.out.println();

// 第二种:通过索引值遍历

System.out.print("通过索引值遍历:");

for(int i = 0; i < arrayList.size(); i++){

System.out.print(arrayList.get(i) + " ");

}

System.out.println();

// 第三种:for循环遍历

System.out.print("for循环遍历:");

for(Integer number : arrayList){

System.out.print(number + " ");

}

// toArray用法

// 第一种方式(最常用)

Integer[] integer = arrayList.toArray(new Integer[0]);

// 第二种方式(容易理解)

Integer[] integer1 = new Integer[arrayList.size()];

arrayList.toArray(integer1);

// 抛出异常,java不支持向下转型

//Integer[] integer2 = new Integer[arrayList.size()];

//integer2 = arrayList.toArray();

System.out.println();

// 在指定位置添加元素

arrayList.add(2,2);

// 删除指定位置上的元素

arrayList.remove(2);    

// 删除指定元素

arrayList.remove((Object)3);

// 判断arrayList是否包含5

System.out.println("ArrayList contains 5 is: " + arrayList.contains(5));

// 清空ArrayList

arrayList.clear();

// 判断ArrayList是否为空

System.out.println("ArrayList is empty: " + arrayList.isEmpty());

}

}

/**

Before add:arrayList.size() = 0

After add:arrayList.size() = 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

*/

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-15

java中使用arraylist修改里面的内容,可以使用set方法,拿到下标修改内容,如下代码:

package com.qiu.lin.he;

import java.util.ArrayList;
import java.util.List;

public class Ceshi {
public static void main(String[] args) {

List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
System.out.println("未修改前:");
for (String s : list) {
System.out.println(s);
}

list.set(0, "修改之后的元素");//修改对应的元素
System.out.println("已修改后:");
for (String s : list) {
System.out.println(s);
}
}
}

运行结果如下:

第2个回答  2009-04-01
import java.util.ArrayList;
import java.util.List;

public class test1 {

public static void main(String[] args) {

List<Integer> list2 = new ArrayList<Integer>();

list2.add(1);
list2.add(2);
list2.add(3);
list2.add(4);

list2.set(2, 7);

for(int i = 0 ; i < list2.size(); i++){
System.out.println(list2.get(i));

}
}

}

这样就行了

他的API是
set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
第3个回答  2009-04-01
////////////////that's mine

import java.util.*;

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>();
list.add(a);
list.add(b);
list.add(c);
System.out.println("未修改前:");
for(Student s: list){
System.out.println(s);
}
a.setMark(100);
list.set(0, a);
System.out.println("已修改后:");
for(Student s: list){
System.out.println(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 s.getMark() - this.getMark();
} else {
return -1;
}

}

public String toString(){
return name + ": " + mark;
}

}本回答被提问者采纳
第4个回答  2009-04-01
不是结了么?
相似回答