我有一个列表每个元素的属性为edge 
edge 有两个属性int number, String name
我怎样将这个列表中的所有元素,以元素的属性number的大小进行排序,加入另一个列表中

解决方案 »

  1.   

    edge 里面添加一个compareTo方法public int compareTo(Object obj){
      return this.nunmber-((edge)obj).getNumber();
    }
      

  2.   

    class edge implements Comparable {
      private int number;  private String name;  public int compareTo(Object obj) {
        return this.number - ((edge) obj).getNumber();
      }  /**
       * @return the number
       */
      public int getNumber() {
        return number;
      }  /**
       * @param number the number to set
       */
      public void setNumber(int number) {
        this.number = number;
      }  /**
       * @return the name
       */
      public String getName() {
        return name;
      }  /**
       * @param name the name to set
       */
      public void setName(String name) {
        this.name = name;
      }
    }
      

  3.   

    那你在sort方法里,要循环了,按照2楼的那种方法,每个元素之间调用compareTo方法,
      

  4.   

    如果只是临时性的,我倒是很喜欢这样写
    Collections.sort(list,
        new Comparator<edge>(){
            int compare(edge e1, edge e2){
                return e1.getNumber()-e2.getNumber();
            }
        }
    );
      

  5.   

    Collections.sort(list);//直接改变list内部的顺序