某银行举行某活动后,需要统计出所有获奖客户,便于颁发纪念奖品,由于营业网点众多,数据比较分散,一个客户可能在不同的网点中奖多次,请根据各个网点的中奖客户编号信息,统计出所有的中奖客户编号:
  网点a:1、2、7、9、11、15、34、35
  网点b:2、3、4、8、12、35
  网点c:5、9、15、16、20、41
  提示:使用数组存储各个网点数据,统计出目标数组共有多少个元素(注意重复元素只算作一个),再把不重复的数据存入目标数组。
刚学数组用什么方法可以把多余的元素干掉?

解决方案 »

  1.   

    用 set 代替数组
    set可以去重
      

  2.   

    import java.util.HashSet;
    import java.util.Set;public class CsdnRequest { private Set<Integer> winners = new HashSet<Integer>(); public void add(int[] customers) {
    for (int i = 0; i < customers.length; i++) {
    winners.add(customers[i]);
    }
    } //返回你要的目标数组
    public Object[] getResult() {
    return winners.toArray();
    } public String toString() {
    String str = "";
    Object[] winnerList = getResult();
    for (int i = 0; i < winnerList.length; i++) {
    str += winnerList[i] + " ";
    }
    return str;
    } public static void main(String[] args) {
    CsdnRequest obj = new CsdnRequest();
    int[] natA = { 1, 2, 7, 9, 11, 15, 34, 35 };
    int[] natB = { 2, 3, 4, 8, 12, 35 };
    int[] netC = { 5, 9, 15, 16, 20, 41 };
    obj.add(natA);
    obj.add(natB);
    obj.add(netC);
    System.out.println(obj);
    }
    }
      

  3.   


    import java.util.List;
    import java.util.TreeSet;
    public class MySet{
    private TreeSet<Integer> s;

    public MySet()
    {
    s = new TreeSet<Integer>();
    }

    public void addList(List<Integer> l)
    {
    s.addAll(l);
    }

    public void addArray(int[] arr)
    {
    for (int i : arr) {
    this.s.add(new Integer(i));
    }
    }

    public void print()
    {
    System.out.println(s);
    }

    public static void main(String[] args) {
    int[] a = {1,2,7,9,11,15,34,35};
    int[] b = {2,3,4,8,12,35};
    int[] c = {5,9,15,16,20,41};
    MySet set = new MySet();
    set.addArray(a);
    set.addArray(b);
    set.addArray(c);
    set.print();
    }
    }