额,这个好难吗?我以为超级简单,大家都一眼就能看懂,所以把注释省了。好吧,我把注释加上吧- package com.java.collection;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Iterator;
- import java.util.ListIterator;
- import java.util.Random;
- public class StringMath {
- //1.一个ArrayList对象aList中存有若干个字符串元素,现欲遍历该ArrayList对象,删除其中所有值为"abc"的字符串元素,请用代码实现。
- public static void main(String[] args) {
- ArrayList list = new ArrayList(); //声明一个list集合
-
- for (int i = 0; i < 1000; i++) { //for循环,往集合里添加1000个元素
- list.add(StringNum(3)); //添加集合元素,StringNum为生成随机元素方法
- }
- //为了确实随机生成的元素里有一部分值为“abc”,所有添加多个for循环,随机替换一些元素为abc
- for (int i = 1; i < 5; i++) {
- Random rand = new Random();
- int number = rand.nextInt(1000); //生成大于0小于1000的随机
- list.set(number, "abc"); //以生成的随机数为索引,替换指定位置上的元素为abc
- System.out.print(number+" ");
- }
- ListIterator lit = list.listIterator(); //list的迭代器
- while (lit.hasNext()) { //遍历
- String str = (String)lit.next();
- if ("abc".equals(str)) { //对比该元素是否位置abc
- lit.remove(); //如果是则删除
- //System.out.println(list.indexOf("abc"));
-
- }
- }
- System.out.println(list); //打印出list集合
- }
- //生成随机元素发方法
- public static String StringNum(int length) { //leng为要生成随机元素的长度,比如abc则长度为3
-
- String az = "adbefcghijklmnopqrstuvxyz1234567890"; //声明一个String 类型的字符串为源值
- Random rand = new Random();
- StringBuffer sb = new StringBuffer(); //声明StringBuffer
- for (int i = 0; i < length; i++) {
- int number = rand.nextInt(az.length()); //以源值长度为随机范围,生成随机数
- sb.append(az.charAt(number)); //抽取出源值上随机数的字符,并添加到sb中,比如如果上面算的随机数为3,则抽出的值为e,把e添加到sb中
- }
- return sb.toString(); //返回sb的String值
-
- }
复制代码
|