2017-08-22 11 views
1

が含まれている私が持っている:設定<LocalDate>がLOCALDATEベストプラクティス

ZoneId gmt = ZoneId.of("GMT"); 
LocalDateTime localDateTime = LocalDateTime.now(); 
LocalDate localDateNow = localDateTime.toLocalDate(); 

Set<LocalDate> hollidays = new HashSet<>(); 

は、私はこのようなLocalDateを等しくすることはできますか?

if(hollidays.contains(localDateNow)){ 
... 
} 
+1

これを試しましたか? :) –

+1

はい、うまくいきます。休日は空ではない、私はそれを埋める方法を書いていない – user5620472

+3

あなたはあなたの質問に答えた、 –

答えて

2

はい、可能です。

あなたはLocalDate::equals()実装を見ている場合は、あなたが見ることができるようになります:

int compareTo0(LocalDate otherDate) { 
    int cmp = (year - otherDate.year); 
    if (cmp == 0) { 
     cmp = (month - otherDate.month); 
     if (cmp == 0) { 
      cmp = (day - otherDate.day); 
     } 
    } 
    return cmp; 
} 

日付の適切に実装equals方法のように見えた - それはHashSet秒で正しく動作することを意味します。

hashCode()

ドキュメントから抜粋:

2つのオブジェクトが等しい(オブジェクト)の方法に従って等しい場合、2つのオブジェクトのそれぞれにhashCodeメソッドを呼び出すと同じ整数の結果を生成しなければなりません。

関連する問題