集合操作集合排序,内容筛选

来源:互联网 发布:正规淘宝刷平台排行榜 编辑:程序博客网 时间:2024/06/10 11:51

集合操作集合排序,内容筛选

List集合使用Collections.sort()方法进行排序(必须实现Comparable接口,并重写compareTo方法)

Set集合中的TreeSet集合,(实现Comparable接口,并重写compareTo方法后可以自动排序)

Circle.java

public class Circle implements Shape ,Comparable<Circle>{public int r;static final double PI=3.14;public Circle(int r){this.r=r;}@Overridepublic double GetArea() {return PI*r*r;}@Overridepublic String toString() {return "Circle [r=" + r +","+"Area:"+GetArea()+ "]";}@Overridepublic int compareTo(Circle arg0) {return this.r-arg0.r;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + r;return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;Circle other = (Circle) obj;if (r != other.r)return false;return true;}}

Shape.java

public interface Shape {public double GetArea();}
Test.java

import java.util.Iterator;import java.util.Random;import java.util.Set;import java.util.TreeSet;public class Test {static Set<Circle> set=new TreeSet<Circle>();       public static void Initialise() {Random random=new Random();for(int i=0;i<20;i++){set.add(new Circle(random.nextInt(100)));}}public static void Shaixuan(){System.out.println(set.size());Iterator<Circle>it=set.iterator();while(it.hasNext()) {if(it.next().GetArea()<5000) {it.remove();}}for(Circle C:set){System.out.println(C);}  System.out.println(set.size());}public static void main(String[] args) { Initialise(); Shaixuan();}}


原创粉丝点击