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

Python016

java中使用ArrayList如何修改里面的内容.,第1张

////////////////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=0i<ni++){

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 = 0i <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

*/

if(list.size()-number==1)这个一定会成立,因为int number=list.size()-1

List<Item> list =itemDao.findList(param)

int number=list.size()-1

int k=0

for(Item item:list){

    if(number==k){// number等于297,当k等于297,也就是在最后一条时执行命令

        Opa pa = new Opa()

        pa.setName("李刚")

        opaDao.update(pa)

    }

    k++

}

热心问友2012-11-14JList组件有一个单独的显示模式ListModel来表示JList的显示数据. JList创建以后,JList数据元素的值及数据元素的数量可以动态地改变. JList在它的数据模式ListModel中观察数据的改变.因此,一个ListModel 的正确实现应当在每次数据发生改变时,通知事件的监听者. 当使用构造函数JList(Object[])创建一个JList的实例时,系统将自动 创建一个DefaultListModel的实例来存储JList的显示数据, 可以调用 DefaultListModel中定义的简便方法来动态地修改JList的数据,如 removeElementAt(index),addElement(Object)等. DefaultListModel 在修改数据的同时,将通知JList关于数据的改变.追问: