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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈振宇 中级黑马   /  2014-4-5 23:55  /  1318 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package Collection;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
/**
  * @param args
  */
public static void main(String[] args) {
  // TODO Auto-generated method stub
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);

}
public static ArrayList singleList(ArrayList a)
{
  ArrayList newAl=new ArrayList();

  
     Iterator it=a1.iterator();//这里a1   点不出来迭代器???为什么啊
    while( it.hasNext())
    {
     Object obj=it.next();
    if(!newAl.contains(obj))
     newAl.add(obj);
     
     
    }
    return newAl;
     
  
}
}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
package Collection;
import java.util.ArrayList;
import java.util.Iterator;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList a1=new ArrayList();
a1.add("java01");
a1.add("java02");
a1.add("java03");
a1.add("java03");
a1.add("java01");
a1.add("java05");
a1=singleList(a1);
}
public static ArrayList singleList(ArrayList a) //你这里的形式参数是a,下面就不能用a1啊,a1是主函数里的变量
{
  ArrayList newAl=new ArrayList();
  
     Iterator it=a.iterator();//将a1改成a就可以了,注意分清这是两个不同的函数
    while( it.hasNext())
    {
     Object obj=it.next();
    if(!newAl.contains(obj))
     newAl.add(obj);
     
     
    }
    return newAl;
     
  
}
}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
注意变量的作用域!
回复 使用道具 举报
连接: java.lang包
http://bbs.itheima.com/thread-112874-1-1.html
(出处: 黑马程序员IT技术论坛)
回复 使用道具 举报
就一个小问题,不细心的孩子啊。看下面代码。
  1. public class ArrayListTest {
  2. /**
  3.   * @param args
  4.   */
  5. public static void main(String[] args) {
  6.   // TODO Auto-generated method stub
  7. ArrayList a1=new ArrayList();
  8. a1.add("java01");
  9. a1.add("java02");
  10. a1.add("java03");
  11. a1.add("java03");
  12. a1.add("java01");
  13. a1.add("java05");
  14. a1=singleList(a1);
  15. System.out.println(a1);

  16. }
  17. public static ArrayList singleList(ArrayList a1)//1.好吧,粗心问题,这里少了一个1.
  18. {
  19.   ArrayList newAl=new ArrayList();

  20.   
  21.      Iterator it=a1.iterator();//这里a1   点不出来迭代器???为什么啊
  22.     while( it.hasNext())
  23.     {
  24.      Object obj=it.next();
  25.     if(!newAl.contains(obj))
  26.      newAl.add(obj);
  27.      
  28.      
  29.     }
  30.     return newAl;
  31.      
  32.   
  33. }
  34. }
复制代码
回复 使用道具 举报
  1. 键盘录入方法。
  2. 1、获取键盘录入对象。
  3.         InputStream in = System.in;
  4. 2、将字节流对象转成字符流对象,使用转换流。InputStreamReader
  5.         InputStreamReader isr = new InputStreamReader(in);
  6. 3、为了提高效率,将字符串进行缓冲区技术高效操作。使用BufferedReader
  7.         BufferedReader bufr = new BufferedReader(isr);

  8.         键盘的最常见写法。
  9.                 BufferedReader bufr =
  10.                                 new BufferedReader(new InputStreamReader(System.in));

  11. public class ArrayListTest {

  12. /**

  13.   * @param args

  14.   */

  15. public static void main(String[] args) {

  16.   // TODO Auto-generated method stub

  17. ArrayList a1=new ArrayList();

  18. a1.add("java01");

  19. a1.add("java02");

  20. a1.add("java03");

  21. a1.add("java03");

  22. a1.add("java01");

  23. a1.add("java05");

  24. a1=singleList(a1);

  25. System.out.println(a1);


  26. }

  27. public static ArrayList singleList(ArrayList a)//形参不是a,改成a1下面的迭代器就能用了 或者 将下面55行中改成Iterator it = a.iterator();

  28. {

  29.   ArrayList newAl=new ArrayList();


  30.   

  31.      Iterator it=a1.iterator();//这里a1   点不出来迭代器???为什么啊

  32.     while( it.hasNext())

  33.     {

  34.      Object obj=it.next();

  35.     if(!newAl.contains(obj))

  36.      newAl.add(obj);

  37.      

  38.      

  39.     }

  40.     return newAl;

  41.      

  42.   

  43. }

  44. }
复制代码
回复 使用道具 举报
import java.util.*;


class ArrayListDemo
{
        public static void main(String[] args)
        {
            ArrayList al = new ArrayList();

            //ArrayList a = new ArrayList();

            al.add("java01");
            al.add("java02");
            al.add("java01");
            al.add("java02");
            al.add("java03");
            al.add("java02");

            sop(al);
       
            al = singleElement(al);

            sop(al);
       


        }

        public static ArrayList singleElement(ArrayList a)
        {
            //定义一个临时容器。
            ArrayList newAl = new ArrayList();
       
            Iterator it = a.iterator();  //按上楼上说的我把代码改掉试了一下。可是对下面语句有疑问了。

            while(it.hasNext())      //这里不是判断a容器里是否有元素吗?有就获取没有就是fales。a容器应该是
                                            //是个空容器啊,这里应该是false的吧,求大神解释。
           {
                Object obj =it.next();
               
                if(!newAl.contains(obj))
                    newAl.add(obj);
               
            }

            return newAl;

        }

        public static void sop(Object obj)
        {
                System.out.println(obj);
        }


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