首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较localdate和localtime

比较localdate和localtime
EN

Stack Overflow用户
提问于 2021-05-10 07:31:03
回答 1查看 77关注 0票数 1

我必须创建一个应用程序来管理电影院的广告牌,我有一个标准数据,其中包含电影的标题。我还有一个会话类型数据,它包含int容量、localtime时间、localdate日期和电影。我必须创建一个方法来消除会话,将电影的标题、会话的日期和时间作为参数传递。这个方法在for中的if中失败了。我不知道我做错了什么。会不会是因为我比较localdata和local time类型的数据的方式?

代码语言:javascript
复制
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;  
        }
            
    }
EN

回答 1

Stack Overflow用户

发布于 2021-05-10 08:00:28

您的代码存在多个问题。

sesion.pelicula.titulo==tituloEliminar

==比较“引用”,这不是你想要的,你想检查字符串是否相等。==不会这样做。你在找sesion.pelicula.titulo.equals(tituloEliminar)

sesiones.remove(sesion);

sesiones上循环时,不能从sesiones中删除。记住你想要删除的东西,然后在最后做。或者,不要使用for(:)语法,取而代之的是获取一个迭代器,当您找到想要删除的迭代器时,在它上面调用.remove() (调用var it = sesiones.iterator();,在while (it.hasNext())时替换for循环,用it.next()获取会话,最后如果您的if说:这个需要删除,则调用it.remove()

如何比较LocalDate和LocalTime

==.equals的比较,它适用于所有的非原语类型(因此,对于LocalDate和LocalTime,您还需要使用.equals,不要使用==,它不会做您认为它做的事情)。否则,这里就没有问题了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67463188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档