黑马程序员技术交流社区
标题:
程序的改写
[打印本页]
作者:
jix707
时间:
2013-8-13 14:58
标题:
程序的改写
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()这个函数改写为非静态的方法,可被对象调用?求指教
作者:
赵国刚
时间:
2013-8-13 15:09
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;
}
}用反射
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2