【问题标题】:Search on a ArrayList在 ArrayList 上搜索
【发布时间】:2021-08-29 03:55:52
【问题描述】:

你好,我试图在 ArrayList 上找到一个包含各种元素的特定元素,我尝试了多种方法,但我认为这种方法是最好的。但问题是程序执行 IF 条件时 他似乎无法识别我要搜索的内容。

这是我要搜索的文件:

7dD5DEzjhofoItSG7QwVoY @ ['Frank Sinatra']
5TnAnWRXDM6awfvAveK91N @ ['Mountain John']
5tNhreO6L8kfvQSqPjuGUg @ ['Rammstein']
4Cna7QxOOTNnylVHLtShCi @ ['Madonna']
2Sy1r4fGfq4Lslfc0gHkbk @ "['La Sonora Matancera', 'Carlos Argentino']"
3uXp4hZmCnEmVjffupKCiT @ ['Supertramp']

这是我的代码:

public static void ADD_TAGS(ArrayList<Song> artistaMusica,String Artista,String NewTag){
        
        long start = System.currentTimeMillis();

       // System.out.println("O array contem :" + artistaMusica);

        for(int i = 0 ; i < artistaMusica.size() ; i++) {


            if  (Artista == artistaMusica.get(i).getnomeArtista()) {

                System.out.println("Artista procurado :" + Artista );

            }
        }


        long end = System.currentTimeMillis();
        System.out.println("(took "+(end-start)+" ms)\n");

    }

【问题讨论】:

  • 什么是 Artista?
  • 我要搜索的艺术家
  • 问题是什么?您是否设法解析艺术家?

标签: java search arraylist contains


【解决方案1】:

使用类似的 equals 方法可能会更好:

for (Song actual: artistaMusica) {
        if (actual.getnomeArtista().equals("What u want")) {
            System.out.println(actual);
        }
    }

【讨论】:

  • 给了我同样的结果,它不打印变量的值。
【解决方案2】:

你正在比较字符串,所以在你的 if 语句中你应该使用 Artista.equals(artistaMusica.get(i).getnomeArtista()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2010-11-02
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多