黑马程序员技术交流社区
标题:
java集合问题
[打印本页]
作者:
凝聚
时间:
2013-10-11 20:29
标题:
java集合问题
本帖最后由 凝聚 于 2013-10-12 15:14 编辑
请问用collections中的fill方法,把一个List集合中的指定一段替换为同一个字符串,List集合存的是字符串。该怎么弄,最好举个例子。
作者:
吴清源
时间:
2013-10-11 21:28
collections中的fill方法使用如下:
public void Test1() {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Collections.fill(list, "ddd");
for (String str : list) {
System.out.println(str);
}
}
复制代码
这段代码运行的结果会把ArrayList中的字符串全都替换为ddd
作者:
飘落
时间:
2013-10-11 21:42
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
list.add("ee");
System.out.println(list);// [aa, bb, cc, dd, ee]
List<String> subList = list.subList(1, 3);
System.out.println(subList);// [bb, cc]
//list和subList相关,相关的元素在任意一个集合中改变,另一个也改变
Collections.fill(subList, "ii");
System.out.println(list);// [aa, ii, ii, dd, ee]
}
}
复制代码
作者:
赖波
时间:
2013-10-11 21:46
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Collections_fill {
public static void main(String[] args) {
List<String> arrList=new ArrayList<String>();
arrList.add("第1个");
arrList.add("第2个");
arrList.add("第3个");
arrList.add("第3个");
arrList.add("第3个");
Collections.replaceAll(arrList, "第3个", "replace");//这是相同的可以全部换
Iterator<String> itR=arrList.iterator();
while(itR.hasNext()){
System.out.println(itR.next());
}
Collections.fill(arrList, "无");// 而fill这是是全部换的
Iterator<String> itF=arrList.iterator();
while(itF.hasNext()){
System.out.println(itF.next());
}
// 若你是想集合从哪到哪换的话,可以利用索引 如2-4个元素换成“无”
for(int i=2;i<4;i++){
arrList.set(i, "无");
}
}
}
复制代码
作者:
杨增坤
时间:
2013-10-11 22:34
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] agrs) {
/* 定义了一个List对象 */
List<String> list = new ArrayList<String>();
list.add("dkf");
list.add("abcde");
list.add("zz");
list.add("edf");
list.add("asfr");
Collections.sort(list);
System.out.println("集合:" + list);
/*
* fill(List<? superT> list,T obj)将集合中的所有元素替换成指定元素
*/
Collections.fill(list, "ss");
System.out.println("fill后的集合:" + list);
/*利用自定义的方法把索引从2~4的元素替换成"123"*/
fillPart(list,"123",2,4);
System.out.println("部分自定义替换后的集合:" + list);
/* boolean replaceAll(List<T> list, ToldVal,T newVal)
* 将集合中的所有的某一值替换成指定的值*/
Collections.replaceAll(list, "ss", "kk");
System.out.println("replaceAll后的集合:" + list);
}
/* 替换集合中的部分元素使用fill 从索引start~end 包含start,不包含end*/
public static <T> void fillPart(List<?super T> list, T obj, int start, int end) {
for(int i=start;i<end;i++){
list.set(i, obj);
}
}
}
结果:
集合:[abcde, asfr, dkf, edf, zz]
fill后的集合:[ss, ss, ss, ss, ss]
部分自定义替换后的集合:[ss, ss, 123, 123, ss]
replaceAll后的集合:[kk, kk, 123, 123, kk]
复制代码
作者:
To
时间:
2013-10-12 11:18
楼主你好,如果问题已解决请将帖子状态改为提问结束,如果未解决请继续提问,谢谢合作。
作者:
凝聚
时间:
2013-10-12 15:40
杨增坤 发表于 2013-10-11 22:34
太给力了,调试通过了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2