本帖最后由 nxp1986 于 2014-9-4 17:40 编辑
做基础测试题,不适用泛型,怎么弄都把集合转不了数组了....求大牛解惑,这个代码很繁琐的说,只是想用嘴基础的写出来,没想到出现这么多问题
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.List;
- public class Test08 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- /*
- * 思路:
- * 1、既然是数组需要去除重复,但是数组中又没有这样的方法。就需要考虑使用其他的对象方法实现。
- * 2、数组和集中中ArrayList集合很像,考虑把数组转换成ArrayList集合,然后使用ArrayList集合可以实现这个功能。
- *
- * 步骤:
- * 1、把数组转换成ArrayList集合。
- * 2、使用ArrayList集合去除重复元素。
- * 3、在把ArrayList转换成数组来完成。
- */
- //创建一个数组
- int[] arr = {4,2,4,6,1,2,4,7,8};
-
- //调用功能实现去除重复。
- arrayRemove(arr);
- System.out.println(arr);
-
- }
- public static void arrayRemove(int[] arr) {
- //创建一个集合
- List list = new ArrayList();
-
- //1、把数组转换成集合
- for (int i = 0; i < arr.length; i++) {
- list.add(arr[i]);
- }
- // System.out.println(list);//验证是否转换成功
-
- //2、使用集合中的方法,去除重复元素
- //定义一个功能实现集合区重复
- singleElements(list);
-
- //3、把集合转换成数组
- Integer [] buf = (Integer[]) list.toArray(new Integer[list.size()]);
-
- }
- /*
- * 既然是需要集合去重复,因为去除重复后的元素都是唯一性的。
- * 定义一个临时集合容器,把唯一性的元素存储进去即可
- */
- public static void singleElements(List list) {
- //定义一个临时集合容器
- List temp = new ArrayList();
- //遍历原集合
- for (Iterator it = list.iterator(); it.hasNext();) {
- Object obj = (Object) it.next();
- //判断遍历出来的元素在临时容器中是否存在,如果不存在就存储
- if(!temp.contains(obj)){
- temp.add(obj);
- }
- }
- //把原容器清空,同时把临时容器存储到原容器中
- list.clear();
- list.addAll(temp);
-
- }
- }
复制代码
为什么定义一个方法就实现不了呢?
|
|