Discuss / Java / 三个

三个

Topic source

波猫747

#1 Created at ... [Delete] [Delete and Lock User]
import java.util.Comparator;import java.util.PriorityQueue;import java.util.Queue;public class Demo06 {    public static void main(String[] args) {        Queue<User> q = new PriorityQueue<>(new UserComparator());        // 添加3个元素到队列:        q.offer(new User("Bob", "A10"));        q.offer(new User("Alice", "A2"));        q.offer(new User("Boss", "V1"));        q.offer(new User("Ceo1", "C10"));        q.offer(new User("Ceo", "C10"));        q.offer(new User("Cfo", "C20"));        System.out.println(q.poll()); //Boss/V1        System.out.println(q.poll()); //Ceo1/C10        System.out.println(q.poll()); //Ceo/C10        System.out.println(q.poll()); //Cfo/C20        System.out.println(q.poll()); //Alice/A2        System.out.println(q.poll()); //Bob/A10    }}class UserComparator implements Comparator<User> {    public int compare(User u1, User u2) {        if (u1.number.charAt(0) == u2.number.charAt(0)) {            // 如果两人的号都是A开头或者都是V开头,比较号的大小:            char[] u1chars = u1.number.toCharArray();            char[] u2chars = u2.number.toCharArray();            char[] u1Newchar = new char[u1chars.length - 1];            char[] u2Newchar = new char[u2chars.length - 1];            for (int i = 1, j = 0; i < u1chars.length; i++) {                u1Newchar[j] = u1chars[i];                j++;            }            for (int i = 1, j = 0; i < u2chars.length; i++) {                u2Newchar[j] = u2chars[i];                j++;            }            String u1NumStr = new String(u1Newchar);            String u2NumStr = new String(u2Newchar);            int u1Num = Integer.parseInt(u1NumStr);            int u2Num = Integer.parseInt(u2NumStr);            return Integer.compare(u1Num,u2Num);        } else {            if ((u1.number.charAt(0) == 'V')) {                return -1;            } else if (u1.number.charAt(0) == 'C' && u2.number.charAt(0) == 'A') {                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;    }}

波猫747

#2 Created at ... [Delete] [Delete and Lock User]
import java.util.Comparator;import java.util.PriorityQueue;import java.util.Queue;public class Demo06 {    public static void main(String[] args) {        Queue<User> q = new PriorityQueue<>(new UserComparator());        // 添加3个元素到队列:        q.offer(new User("Bob", "A10"));        q.offer(new User("Alice", "A2"));        q.offer(new User("Boss", "V1"));        q.offer(new User("Ceo1", "C10"));        q.offer(new User("Ceo", "C10"));        q.offer(new User("Cfo", "C20"));        System.out.println(q.poll()); //Boss/V1        System.out.println(q.poll()); //Ceo1/C10        System.out.println(q.poll()); //Ceo/C10        System.out.println(q.poll()); //Cfo/C20        System.out.println(q.poll()); //Alice/A2        System.out.println(q.poll()); //Bob/A10    }}class UserComparator implements Comparator<User> {    public int compare(User u1, User u2) {        if (u1.number.charAt(0) == u2.number.charAt(0)) {            // 如果两人的号都是A开头或者都是V开头,比较号的大小:            char[] u1chars = u1.number.toCharArray();            char[] u2chars = u2.number.toCharArray();            char[] u1Newchar = new char[u1chars.length - 1];            char[] u2Newchar = new char[u2chars.length - 1];            for (int i = 1, j = 0; i < u1chars.length; i++) {                u1Newchar[j] = u1chars[i];                j++;            }            for (int i = 1, j = 0; i < u2chars.length; i++) {                u2Newchar[j] = u2chars[i];                j++;            }            String u1NumStr = new String(u1Newchar);            String u2NumStr = new String(u2Newchar);            int u1Num = Integer.parseInt(u1NumStr);            int u2Num = Integer.parseInt(u2NumStr);            return Integer.compare(u1Num,u2Num);        } else {            if ((u1.number.charAt(0) == 'V')) {                return -1;            } else if (u1.number.charAt(0) == 'C' && u2.number.charAt(0) == 'A') {                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