相关疑难解决方法(0)

如何通过多个字段比较对象

假设您有一些具有多个字段的对象,可以通过以下方式进行比较:

public class Person {

    private String firstName;
    private String lastName;
    private String age;

    /* Constructors */

    /* Methods */

}
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中,当你问:

a.compareTo(b) > 0
Run Code Online (Sandbox Code Playgroud)

你可能会问b的姓氏是否在b之前,或者a是否早于b,等等......

在不增加不必要的混乱或开销的情况下,在这些类型的对象之间进行多重比较的最简洁方法是什么?

  • java.lang.Comparable 界面允许仅通过一个字段进行比较
  • 在我看来compareByFirstName(),添加大量的比较方法(例如compareByAge(),等等)是混乱的.

那么最好的方法是什么呢?

java oop

214
推荐指数
12
解决办法
36万
查看次数

如何对数组进行排序而忽略大小写?

我使用sort()按字母顺序对数组进行排序,但它从AZ到az进行排序.我尝试事先将每个单词大写,但除非打印出来,否则它不起作用,这应该在排序后发生.目前,使用此代码,它将使用大写字母列出学生,但如果它以小写形式输入,则将其排序为小写.在将输入分配给数组之后,将capitalize()放在初始for循环中是行不通的.有解决方案吗

import java.util.Scanner;
import java.util.Arrays;

public class Pupils {
public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);
    boolean loop = true;
    int names = 0;

    String[] ay = new String[1000];

    for(int i = 0; loop == true; i++) {
            System.out.println("Enter name: ");
            ay[i] = scan.nextLine();
            names++;
            if (ay[i].equals("0")) {
                loop = false;
                ay[i] = " ";
        }
    }

    String[] aay = new String[names - 1];

    for(int i = 0; i < aay.length; i++) {
        aay[i] = ay[i]; …
Run Code Online (Sandbox Code Playgroud)

java arrays sorting

2
推荐指数
1
解决办法
987
查看次数

标签 统计

java ×2

arrays ×1

oop ×1

sorting ×1