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

© jix707 初级黑马   /  2013-8-13 14:58  /  868 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  • font size="1" face="Arial">/*
  • 去除ArrayList中重复的元素
  • 分析:
  • 建立一个新集合,对原集合取值,
  • 每取一次,要判断一次,是否新集合中有这个元素
  • 如果没有就添加到新集合中
  • */
  • import java.util.*;
  • class RemoveArrayListTest
  • {
  • public static void sop(Object obj)
  • {
  • System.out.println(obj);
  • }
  • public static void main(String[] args)
  • {
  • ArrayList al = new ArrayList();
  • al.add("java01");
  • al.add("java02");
  • al.add("java03");
  • al.add("java01");
  • al.add("java03");
  • al.add("java02");
  • al.add("java05");
  • al.add("java04");
  • sop("原集合:" + al);
  • al = singleElement(al);
  • sop("新集合:" + al);
  • }
  • public static ArrayList singleElement(ArrayList al)
  • {
  • //定义一个临时容器
  • ArrayList newAl = new ArrayList();
  • Iterator it = al.listIterator();
  • //判断是否有重复值,没有则加入新集合
  • while (it.hasNext())
  • {
  • Object obj = it.next();
  • if (!newAl.contains(obj))
  • newAl.add(obj);
  • }
  • return newAl;
  • }
  • }
  • </font>
复制代码这是毕老师视频中的一个练习,如何将singleElement()这个函数改写为非静态的方法,可被对象调用?求指教

1 个回复

倒序浏览
package day28;


import java.lang.reflect.Method;

import java.util.*;

class RemoveArrayListTest
{

        public static void sop(Object obj)

        {

                System.out.println(obj);

        }

        

        public static void main(String[] args) throws Exception, Exception
        {

                ArrayList al = new ArrayList();

                al.add("java01");

                al.add("java02");

                al.add("java03");

                al.add("java01");

                al.add("java03");

                al.add("java02");

                al.add("java05");

                al.add("java04");

                sop("原集合:" + al);

                Method method=RemoveArrayListTest.class.getMethod("singleElement", ArrayList.class);

                al=(ArrayList)method.invoke(new RemoveArrayListTest(), al);

                //al = singleElement(al);

                sop("新集合:" + al);

        }


        public  ArrayList singleElement(ArrayList al)

        {

                //定义一个临时容器

                ArrayList newAl = new ArrayList();

                Iterator it = al.listIterator();

                //判断是否有重复值,没有则加入新集合

                while (it.hasNext())

                {

                        Object obj = it.next();

                        if (!newAl.contains(obj))

                                newAl.add(obj);

                }

                return newAl;               
        }

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