簡體   English   中英

比較Java中兩個類的實例

[英]Comparing two instances of a class in Java

我有一個有兩個整數成員的類。 這些成員是塊和偏移數字。 我需要將這個類的兩個實例與大或小的符號進行比較。 例如;

instance1 < instance2

如果聲明需要返回true

instance1.blockNumber < instance2.blockNumber;

要么

instance1.blockNumber = instance2.blockNumber;
instance1.offset < instance2.offset;

據我所知,Java不支持運算符重載。 我該怎么做這樣的比較?

讓類實現Comparable接口,它提供compareTo方法。 然后,您可以在if語句中使用數字的值( -1表示less, 1表示更多, 0表示equals)。

如果你想要把這些對象在列表中(比如,用於排序),你也應該@Override.equals方法。

import java.util.Comparable;

public class BlockOffset implements Comparable<BlockOffset>
{
  private int blockNumber;
  private int offset;

  @Override
  public int compareTo(BlockOffset instance2) {
    if (this.blockNumber < instance2.blockNumber) return -1;
    if (this.blockNumber > instance2.blockNumber) return 1;
    if (this.offset < instance2.offset) return -1;
    if (this.offset > instance2.offset) return 1;

    return 0;
  }   
}

如果類類型是您自己的代碼,那么它可以實現Comparable並定義compareTo方法,您可以在其中編寫邏輯。 然后,您可以使用compareTo比較它們。

你可以實現和使用comparablecomparator

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM