Discuss / Java / 比较A2和A10

比较A2和A10

Topic source

ncoheart

#1 Created at ... [Delete] [Delete and Lock User]
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Queue;

public class Main{
    public static void main(String[] args) {
        Queue<User> q = new PriorityQueue<>(new UserComparator());
        q.offer(new User("Bob", "A10"));
        q.offer(new User("Alice", "A2"));
        q.offer(new User("Boss", "V1"));
        System.out.println(q.poll());
        System.out.println(q.poll());
        System.out.println(q.poll());
        System.out.println(q.poll());
        
    }
}

class UserComparator implements Comparator<User>{
    public int compare(User u1,User u2){
        if (u1.number.charAt(0)==u2.number.charAt(0)){
            Integer a = Integer.parseInt(u1.number.substring(1));
            Integer b = Integer.parseInt(u2.number.substring(1));
            return a.compareTo(b);
        }
        if(u1.number.charAt(0) == 'V'){
            return -1;
        }else{
            return 1;
        }
    }
}

class User{
    public final String name;
    public final String number;

    public User(String name,String number){
        this.name = name;
        this.number = number;
    }

    public String toString(){
        return name + "/" + number;
    }
}

  • 1

Reply