黑马程序员技术交流社区

标题: 将List集合中的部分元素替换成指定元素 [打印本页]

作者: 惠晖    时间: 2012-12-12 22:00
标题: 将List集合中的部分元素替换成指定元素
本帖最后由 惠晖 于 2012-12-12 23:05 编辑

用Collections.fill方法

作者: xjandrew    时间: 2012-12-12 22:55
  1. import java.util.*;



  2. public class No_repeat3
  3. {
  4. public static void main(String[] args)throws NoSuchElementException
  5. {
  6. List<String> al = new ArrayList<String>();
  7. for (int i = 1; i <= 5; i++)
  8. {
  9. al.add(""+i);
  10. }
  11. al.set(2,"45");//脚表2位置换成字符串“45”
  12. a.set(4,"23");//脚表4位置换成字符串“23”




  13. }
复制代码

作者: 焦健    时间: 2012-12-12 23:30
import java.util.*;
class List1
{
        public static void main(String[] args)
        {
                List<String> al= new ArrayList<String>();
                al.add("Java01");
                al.add("Java02");
                al.add("Java03");
                Iterator<String> it=al.iterator();
                while(it.hasNext())
                {
                        System.out.println("原始数据"+it.next());
                }
                al.set(2, "Java05");
                Iterator<String> it1=al.iterator();
                while(it1.hasNext())
                {
                        System.out.println("替换后"+it1.next());
                }
        }

}

set
public E set(int index, E element)用指定的元素替代此列表中指定位置上的元素。

参数:index - 要替代的元素的索引,element - 存储在指定位置上的元素
返回:以前位于该指定位置上的元素

作者: xjandrew    时间: 2012-12-13 11:10
Collections中
返回值为static <T> void
方法为fill(List<? super T> list, T obj)
          使用指定元素替换指定列表中的所有元素。
你可以看到,要换就全换了,单一指定位置换不了
作者: 惠晖    时间: 2012-12-13 11:40
肯定是能换的  毕向东留的练习
作者: 奋斗的青春    时间: 2012-12-13 13:52
  1. package myFill;

  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;

  5. public class FillDemo {
  6.         public static void main(String[] args) {
  7.                 List<String> list = new ArrayList<String>();
  8.                 list.add("java00");
  9.                 list.add("java01");
  10.                 list.add("java02");
  11.                 list.add("java03");
  12.                 list.add("java04");
  13.                 list.add("java05");
  14.                 list.add("java06");
  15.                 /*
  16.                  * 将List集合中的部分元素替换为指定元素 ,
  17.                  * 要求使用Collections中的fill(List<? super T> list, T obj) ---> 使用指定元素替换指定列表中的所有元素。
  18.                  * 思路:
  19.                  * 因为fill是替换掉指定列表中的所有元素,
  20.                  * 所以只能用该列表的子列表来实现部分元素的替换 。
  21.                  * 根据楼主要求 ,需要使用List中的subList方法 ,
  22.                  * 继而对新列表中的所有元素进行全部fill ,
  23.                  */
  24.                 System.out.println("替换前;"+list);
  25.                 List<String> newList = list.subList(1, 4);
  26.                 Collections.fill(newList, "heima");   
  27.                 System.out.println("替换后:"+list);
  28.                
  29.         }
  30.        

  31. }
复制代码

作者: xjandrew    时间: 2012-12-13 14:36
惠晖 发表于 2012-12-13 11:40
肯定是能换的  毕向东留的练习

那你可以说得准确点,直接用肯定不行,要实现按“地板”那楼的方法来
作者: xjandrew    时间: 2012-12-13 14:41
吴愿涛 发表于 2012-12-13 13:52

我说版主,技术分我已经够了,扣不扣无所谓。
同时我要说的是,你仔细看楼主贴子,他是23:05那会儿改的内容,我回贴的时候他可没说用什么方法实现。

接下来怎么处理版主随意
作者: xjandrew    时间: 2012-12-13 18:12
xjandrew 发表于 2012-12-13 14:41
我说版主,技术分我已经够了,扣不扣无所谓。
同时我要说的是,你仔细看楼主贴子,他是23:05那会儿改的 ...

{:soso__7474451706302636966_3:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2