[英]want compare Java.time.LocalDate & java.time.LocalTime in compareTo()
[英]Compare localdate and localtime
我必須制作一個管理電影院廣告牌的應用程序。我有一個標准數據,其中包含電影的標題等數據。 我還有一個 session 類型的數據,其中包含 int 容量、本地時間、本地日期和電影。 我必須制定一種方法來消除 session 作為參數傳遞電影的標題、session 的日期和時間的方法。 該方法在for中的if中失敗了。 我不知道我做錯了什么。 可能是因為我如何比較本地數據類型的數據和本地時間?
public boolean quitarSesion(String tituloEliminar, LocalDate fechaEliminar, LocalTime horaEliminar)
{
int count=0;
for(Sesion sesion: sesiones){
if(sesion.pelicula.titulo==tituloEliminar && sesion.fecha==fechaEliminar && sesion.hora==horaEliminar){
sesiones.remove(sesion);
System.out.println("Sesion eliminada correctamente");
count++;
}
if(count==0){
System.out.println("No se ha eliminado ninguna sesion");
return false;
}
else{
System.out.println("Sesion eliminada correctamente");
return true;
}
}
您的代碼存在多個問題。
sesion.pelicula.titulo==tituloEliminar
==
比較'references',這不是你想要的,你想檢查字符串是否相等。 ==
不這樣做。 您正在尋找sesion.pelicula.titulo.equals(tituloEliminar)
。
sesiones.remove(sesion);
你不能在循環sesiones
時從sesiones
中刪除。 記住要刪除的內容,然后在最后執行。 或者,不要使用for(:)
語法,而是獲取一個迭代器,當您找到要刪除的迭代器時,在其上調用.remove()
(調用var it = sesiones.iterator();
,替換for 循環 while while (it.hasNext())
,用it.next()
獲取 session ,最后如果你的if
說:這個需要消失,調用it.remove()
。
如何比較 LocalDate 和 LocalTime
==
vs .equals
的東西,它適用於所有非原始類型(因此,對於 LocalDate 和 LocalTime 你還需要使用.equals
,不要使用==
,這不會像你認為的那樣)。 否則,這里沒有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.