有两个list<Point> 集合,POINT点有x,y属性,我想查找出两个list中根据Point的x相同,,然后分别把,这两个list中,凡是x相同的,分装成另外的list《point》 

解决方案 »

  1.   

    比如list1
    2,4
    3,6
    7,9
    list2 
    2,5
    3,8
    8,3
    如何将2,4与3,6封装成新list3
    如何将2,5与3,8封装成新list4
      

  2.   

    应该是:如何将2,4与2,5封装成新list3
    如何将3,6与3,8封装成新list4吧?????????
      

  3.   

    从哪里取的,放在一个新的
    2,4,与3,6
    都是从list1中的,只是根据x判断的
    。该如何办
      

  4.   

    2.4,与3,6
    都是从list1中取的,都放入list3
    只是根据x来判断的,该如何

      

  5.   

    楼主说的好像和给的例子不一样。不管怎么样,就循环两个list,然后根据每个point的x值是否相等去做操作就完了。for(Point point1 : list1){
        int x1 = point1.getX();
        for(Point point2 : list2){
            int x2 = point2.getX();
            if(x1 == x2){
                .......
            }
        }
    }
      

  6.   

    最简单的方案,如下:List l1 = new ArrayList<Point>();
    ...
    List l2 = new ArrayList<Point>();
    ...
    List l3 = new ArrayList<Point>();
    List l4 = new ArrayList<point>();boolean sign = false;
    for (Point p1 : l1) {
    sign = false;
    for (Point p2: l2) {
    if (p1.x == p2.x) {
    sign = true;
    l4.add(p2);
    }
    }
    if (sign) {
    l3.add(p1);
    }
    }
      

  7.   

    Point 实现 comparable接口接口,在compareto方法中
    if(this.x.equals(((Point)arg0).getX())){
    return 0;
    }Map<String,List> map = new HashMap<String,List>();
    for(int i = 0; list1.size() > i; i++){
     if(map.containsKey(list1[i].getX())){
      map.get(list1[i].getX()).add(list1[i]);
     }else{
      List l = new ArrayList();
      l.add(list1[i]);
      map.put(list1[i].getX(),list1[i]);
     }

    for(int i = 0; list2.size() > i; i++){
     if(map.containsKey(list2[i].getX())){
      map.get(list2[i].getX()).add(list2[i]);
     }else{
      List l = new ArrayList();
      l.add(list2[i]);
      map.put(list2[i].getX(),list2[i]);
     }
    }
      

  8.   

    Point 实现 comparable接口接口,在compareto方法中
    if(this.x.equals(((Point)arg0).getX())){
    return 0;
    }
    这个一段不用