在Java中怎么修改ArrayList()中元素的值?

比如在ArrayList()中放了一个对象A,A对象中有属性a和b,那么怎么修改A对象中a和b的值?请路过的大侠们帮个忙... 比如在ArrayList()中放了一个对象A,A对象中有属性a和b,那么怎么修改A对象中a和b的值? 请路过的大侠们帮个忙 展开
 我来答
破晓0612
2018-03-31 · TA获得超过1.1万个赞
知道小有建树答主
回答量:96
采纳率:100%
帮助的人:2.6万
展开全部

1、什么是ArrayList :
ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处:
(1)动态的增加和减少元素
(2)实现了ICollection和IList接口
(3)灵活的设置数组的大小

2、ArrayLis的创建以及增删改查方法:

(1)ArrayList的创建以及元素的添加:

ArrayList <变量名> = new ArrayList(); //()中也可传参。

注释:上面是创建一个空的ArrayList列表。当我们想往列表中传递元素的时候是通过.add()的方法来进行赋值的。看一下下面的案例。另外要想输出出列表中的元素的话要通过for循环遍历:

public class test {
    public static void main(String[] args) {
        ArrayList lis = new ArrayList();
         
        lis.add("tony");
        lis.add("tom");
        lis.add("jack");
        lis.add("mary");
        lis.add("even");
         
        for(int i=0;i<lis.size();i++){
            String result = (String)lis.get(i);
            System.out.println(result);
        }
  • 输出结果如下:

tony
tom
jack
mary
even

(2)ArrayList中元素的删除:

注释:变量名.remove(int Index); //通过.remove(int Index)方法来进行删除。

这里直接传入要删除元素的下标即可。当然也可以直接传入值进行删除。如果你觉得用下边的方式比较麻烦那可以直接输入要删除项的值。

package com.java.demo_9;
 
import java.util.ArrayList;
 
public class Arraylist {
    public static void main(String[] args) {
        ArrayList lis = new ArrayList();
 
        lis.add("tony");
        lis.add("tom");
        lis.add("jack");
        lis.add("mary");
        lis.add("even");
 
        System.out.println("---------------------------------");
         
        System.out.println("<ArrayList原列表元素>:");
         
        for (int i = 0; i < lis.size(); i++) {
            String result = (String) lis.get(i);
            System.out.println(result);
        }
        System.out.println("---------------------------------");
         
        System.out.println("<删除元素后的ArrayList列表>:");
         
        lis.remove(1);
         
        for (int i = 0; i < lis.size(); i++) {
            String result = (String) lis.get(i);
            System.out.println(result);
        }
        System.out.println("---------------------------------");
    }
}

结果:

因为我指定的是lis.remove(1);

index是从0开始起始的因此1代表第2个元素。因此删除的是tom这个元素。

  • <ArrayList原列表元素>:
    tony
    tom
    jack
    mary
    even
    ---------------------------------

  • <删除元素后的ArrayList列表>:
    tony
    jack
    mary
    even
    ---------------------------------

(3)ArrayList中元素的修改注释:

  • ArrayList方法中有一个.set方法(变量.set(index, element);)。

  • 通过这个方法可以修改列表中的值。(index指定下标,element指定要修改后元素的值)。一起来看一下下面的示例:

package com.java.demo_9;
 
import java.util.ArrayList;
 
public class Arraylist {
    public static void main(String[] args) {
        ArrayList lis = new ArrayList();
 
        lis.add("tony");
        lis.add("tom");
        lis.add("jack");
        lis.add("mary");
        lis.add("even");
 
        System.out.println("---------------------------------");
         
        System.out.println("<ArrayList原列表元素>:");
         
        for (int i = 0; i < lis.size(); i++) {
            String result = (String) lis.get(i);
            System.out.println(result);
        }
        System.out.println("---------------------------------");
         
        System.out.println("<修改后的ArrayList列表>:");
         
        //lis.remove("tom");
        lis.set(2, "lucy");
         
        for (int i = 0; i < lis.size(); i++) {
            String result = (String) lis.get(i);
            System.out.println(result);
        }
        System.out.println("---------------------------------");
    }
}

结果:

通过下面的结果可以看出第3个下标中的值已经被改变了。本来是jack现在更改成了lucy。

  • <ArrayList原列表元素>:
    tony
    tom
    jack
    mary
    even
    ---------------------------------

  • <修改后的ArrayList列表>:
    tony
    tom
    lucy
    mary
    even
    ---------------------------------

(4)ArrayList中元素的查找:

注释:.contains()是用来判断一个元素是否包含在另一个元素中的。

所以这里是判断查找的元素是否包含在列表中。返回值方面我直接用的是打印的方法。也可以通过boolean,return的方式返回。

案例1:

import java.util.ArrayList;
 
public class tes {
    public static void main(String[] args) {
        ArrayList lis = new ArrayList();
        lis.add("tony");
        lis.add("tom");
        lis.add("jack");
        lis.add("mary");
        lis.add("even");
         
        if(lis.contains("vivian")){
            System.out.println("包含此元素!");
        }
        else{
            System.out.println("该元素不存在!");
        }
    }
 
}

结果:

  • 返回结果参照代码。找到了就打印“包含此元素,没找到就显示元素不存在。

案例2:

package com.java.demo_9;
 
import java.util.ArrayList;
 
public class ArrLis {
 
    public static void main(String[] args) {
        ArrayList list =new ArrayList();
         
        list.add("tony");
        list.add("tom");
        list.add("jack");
        list.add("kevin");
         
        for(int i=0;i<list.size();i++){
            String result =(String )list.get(i);
            System.out.println(result);
        }
        System.out.println("+++++++++++++++++++++++++++++++++++++");
         
        ArrayList list1 = new ArrayList();
        for(int i=0;i<list.size();i++){
            String res = (String)list.get(i);
            if(list.contains("kevin")){
                list1.add("kevin");
                System.out.println(list1);
                break;
            }else{
                System.out.println("没找到该元素!");
                break;
            }
        }
    }
 
}

结果:

因为列表中中包含"kevin"这个元素所以返回值为该元素。如果列表中没有该元素返回值为“没有找到该元素!”。

  • 注意事项:我是重新设定了一个新空ArrayList(list1)。目的就是为了如果找到该值把这个值直接放到新的ArrayList中。另外if,else用了2次break。就是只要找到或者没找到就退出的意思。如果不这么写那么for循环每找一次结果就会打印一次,这显然是不必要的。

匿名用户
2013-07-05
展开全部
朋友,我来告诉你答案!ArrayList()中存放的只是对象的引用,如果你将A存到ArrayList(),然后修改A的值,ArrayList()中存放的值就会自动转变。如果有A的引用可以直接这么写A.a=你需要的值如果不知道可以通过ArrayList().get(indexof(A))取得A的引用,然后修改属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-11-25
展开全部
他的API是
set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-28
展开全部
A test = new A();
test.a = 1;
test.b = 1;
List list = new ArrayList();
list.add(test);//加到List里
A test2 = (A) list.get(0);// 取出
test2.a = 2;
test2.b = 2;// 这样就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自巢湖敬老慈幼的风车草
2013-03-27 · TA获得超过207个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:115万
展开全部
ArrayList()中存放的只是对象的引用,如果你将A存到ArrayList(),然后修改A的值,ArrayList()中存放的值就会自动转变。
如果有A的引用可以直接这么写 A.a=你需要的值

如果不知道 可以通过ArrayList().get(indexof(A))取得A的引用,然后修改属性
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式