A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

将list集合中部分元素替换成指定元素该怎么做呢;;

5 个回复

倒序浏览
import java.util.ArrayList;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    ArrayList<String> arrayList = new ArrayList<String>();

    arrayList.add("A");
    arrayList.add("B");
    arrayList.add("A");
    arrayList.add("C");
    arrayList.add("D");

    System.out.println(arrayList);

    Collections.replaceAll(arrayList, "A", "Replace All");

    System.out.println(arrayList);
  }
}
替换掉元素中出现的A
回复 使用道具 举报
曾运 黑马帝 2011-12-20 22:26:58
藤椅
  1. import java.util.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)
  5.         {   
  6.           

  7.                 List<String> list=new ArrayList<String>();
  8.                 list.add("张三");
  9.                 list.add("李四");
  10.                 list.add("王五");
  11.                 list.add("赵六");
  12.                 list.add("田七");

  13.                 //打印原来集合
  14.                 System.out.println("原集合数据:"+list);

  15.                 if(list.contains("王五"))//判断集合是否包含某元素
  16.                         {
  17.                           list.set(2,"王八"); //E set(int index, E element)用指定元素替换列表中指定位置的元素。
  18.                         }

  19.                 //打印修改后集合
  20.                 System.out.println("修改后集合数据:"+list);

  21.         }
  22. }
复制代码
回复 使用道具 举报
曾运 黑马帝 2011-12-20 22:27:15
板凳
  1. import java.util.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args)
  5.         {   
  6.           

  7.                 List<String> list=new ArrayList<String>();
  8.                 list.add("张三");
  9.                 list.add("李四");
  10.                 list.add("王五");
  11.                 list.add("赵六");
  12.                 list.add("田七");

  13.                 //打印原来集合
  14.                 System.out.println("原集合数据:"+list);

  15.                 if(list.contains("王五"))//判断集合是否包含某元素
  16.                         {
  17.                           list.set(2,"王八"); //E set(int index, E element)用指定元素替换列表中指定位置的元素。
  18.                         }

  19.                 //打印修改后集合
  20.                 System.out.println("修改后集合数据:"+list);

  21.         }
  22. }
复制代码
回复 使用道具 举报
本帖最后由 周敏2011nc 于 2011-12-21 09:34 编辑

public class ArraysDemo {

        public static void main(String[] args) {
                List<String> list = new ArrayList<String>();
                String[] arr = new String[]{"a","b","g","h","u"};
                list.addAll(Arrays.asList(arr));
                int i = list.indexOf("h");
                list.remove(i);
                list.add(3, "i");
                System.out.println(list.get(3));               
        }
}
list.add(int index , String element)并不能覆盖在index出的元素,而是将index和及其以后的元素依次后移。
用list.set(int index , String element)同样能办到
回复 使用道具 举报
首先,根据Java的多态性,可以用List的子类ArrayList进行List接口的实例化;
其次,利用add()方法加入集合元素,但是通过查阅Java API,发现在ArrayList中并没有replace或replaceAll方法,这时我们可以利用集合工具类Collections。
然后,利用集合工具类Collections的replace()可以将list集合中部分元素替换成指定元素,方法如下:
public static <T> boolean replaceAll(List<T> list, T oldVal,  T newVal),使用 newVal 替换 list 中满足 (oldVal==null ? e==null : oldVal.equals(e)) 的每个 e 元素。
最后,输出。
这样一个简单的流程就可以解决此问题了!
示例代码:
import java.util.ArrayList;
import java.util.Collections;

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

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

    arrayList.add("A");
    arrayList.add("B");
    arrayList.add("c");
    arrayList.add("D");

    System.out.println(arrayList);

    Collections.replaceAll(arrayList, "D", "Replace All");

    System.out.println(arrayList);
  }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马