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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© masai158 高级黑马   /  2014-8-18 22:44  /  1708 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 masai158 于 2014-8-18 22:46 编辑
  1. import java.lang.reflect.Method;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.concurrent.Executors;.

  7. public class Demodsa3fsd
  8. {

  9.         public static void main(Stng[] args)
  10.     {
  11.             List<String> al= new ArrayList<String>();
  12.             al.add("aaa");
  13.             al.add("bbb");
  14.             al.add("ccc");
  15.             al.add("ddd");
  16.             System.out.println(al);

  17.             fill(al,1,3,"kkkk");            
  18.             System.out.println(al);
  19.             
  20.     }
  21.    
  22.    
  23.     public static void fill(List<String> list, int from, int to,String str)
  24.     {
  25.             List startList = null;
  26.             List endList = null;
  27.             try
  28.             {
  29.                     startList = list.subList(0, from);
  30.                     endList = list.subList(from, to);
  31.             }
  32.             catch(IndexOutOfBoundsException e)
  33.             {
  34.                     throw new RuntimeException("修改脚本越界,最小 0,最大" + list.size() );
  35.             }
  36.             
  37.             Collections.fill(endList, str);
  38.             
  39.             List newList = new ArrayList();
  40.             newList.addAll(startList);
  41.             newList.addAll(from, endList);
  42.     }
  43. }
复制代码

点评

不要考虑编译问题。因为头被我删了几个字符。 第一感觉,应该打印出什么东西  发表于 2014-8-18 22:47

3 个回复

倒序浏览
还是原集合   调用方法后什么也没返回   (不知道对不对,没运行的说)
回复 使用道具 举报
本帖最后由 happymouse 于 2014-8-19 08:37 编辑

可能楼主是想表达List集合的一个知识点:
将子集合的值做了改变后原集合会做相应的改变:import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.Executors;

//假如对具体的类不熟悉也可以把java.util下的所以包都导入,如:import java.util.*;
//缺点是会占用一定的内存

class ArrayListTest
{

        public static void main(String[] args)
    {
            List<String> al= new ArrayList<String>();
            List<String> a2= new ArrayList<String>();
            al.add("aaa");
            al.add("bbb");
            al.add("ccc");
            al.add("ddd");
            fill(al,1,3,"kkkk");            
            System.out.println(al);

    }


    public static void fill(List<String> list, int from, int to,String str)
    {
//            List startList = null;
//            List endList = null;
            try
            {
                    List sublist=list.subList(from, to);
                    Collections.fill(sublist, str);
            }
            catch(IndexOutOfBoundsException e)
            {
                    throw new RuntimeException("修改脚标越界,最小 0,最大" + list.size() );
            }


            //这些代码没有必要
//            List newList = new ArrayList();
//            newList.addAll(startList);
//            newList.addAll(from, endList);
    }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马