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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. import java.util.*;
  2. public class Test1 {
  3.         public static void main(String[] args){
  4.                 ArrayList<String> aList = new ArrayList<String>();
  5.                 aList.add("abc");
  6.                 aList.add("afawef");
  7.                 aList.add("abc");
  8.                 //获取迭代器
  9.                 Iterator<String> it = aList.iterator();
  10.                 System.out.println(aList.toString());
  11.                 //用迭代器的hasNext方法遍历
  12.                 while(it.hasNext()){
  13.                                 //把it.next()地址指向String对象
  14.                         String str = it.next();
  15.                                 //判断str的值是否与“abc”相同
  16.                         if(str.equals("abc")){
  17.                                 //若为true,将"abc"的引用从集合中删除
  18.                                 it.remove();
  19.                         }
  20.                 }
  21.                 System.out.println(aList.toString());
  22.         }
  23. }
复制代码

我觉得题目的意思是(“abcdefg”) 输出defg啊。如果是这样应该怎么弄呢~

6 个回复

倒序浏览
迭代器与几何方法不是不能同时用
回复 使用道具 举报
你这样应该会报错的吧。 it.remove();这句
回复 使用道具 举报
不是,删除所有只要有abc内容的数据
回复 使用道具 举报
#在这里快速回复#delete(int start,int end)你值得拥有
回复 使用道具 举报
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                
  4.                 List<String> aList = new ArrayList<String>();
  5.                 //向aList添加字符串
  6.                 aList.add("aaa");
  7.                 aList.add("aba");
  8.                 aList.add("aca");
  9.                 aList.add("abc");
  10.                
  11.                
  12.                 //方法一,用for循环的方式,判断集合中的元素是不是等于abc,如果不是就加入到新建的集合中,最后返回新建的集合
  13.                 List<String> list = removeStr1(aList,"abc");
  14.                 System.out.println(list);
  15.                
  16.                 //方法二,List有一个特殊的迭代器借口(listIterator()),这个接口的特点是
  17.                 //迭代期间可以删除List中的元素
  18.                 removeStr2(aList,"abc");
  19.                 System.out.println(aList);
  20.         }

  21. //方法一      -----------------------------------------------------------------------       
  22.         private static List<String> removeStr1(List<String> aList,String str) {
  23.                 //用多态的形式创建一个String类型的ArrayList的对象list,来存储不是"abc"的字符串
  24.                 List<String> list = new ArrayList<String>();
  25.                 //用for循环遍历整个集合,如果不等于传进来的字符串str,则添加到新的数组list中
  26.                 for (int i = 0; i < aList.size(); i++) {
  27.                         //判断是不是等于传进来的字符串str
  28.                         if(!(aList.get(i).equals(str))){
  29.                                 //向list中添加元素
  30.                                 list.add(aList.get(i));
  31.                         }
  32.                 }
  33.                 return list;
  34.         }
  35.        
  36. //方法二     -----------------------------------------------------------------------               
  37.         private static void removeStr2(List<String> aList,String str) {
  38.                 // TODO Auto-generated method stub
  39.                 //创建一个List集合特有的迭代器(迭代期间可以删除List中的元素)
  40.                 Iterator<String> it = aList.listIterator();
  41.                 while(it.hasNext()){
  42.                         if(it.next().equals(str)){
  43.                                 //如果等于传进来的str,就列表中删除
  44.                                 it.remove();
  45.                         }
  46.                 }
  47.         }
  48.        
  49. }
复制代码


回复 使用道具 举报 1 0
雨来 高级黑马 2015-12-24 21:22:24
7#
toArray  subString  toString()   再转换成集合可以吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马