Java 歌曲分级的数组匹配计数算法

Java 歌曲分级的数组匹配计数算法,java,arrays,Java,Arrays,在过去的六个小时里,我一直在尝试解决这段小代码,我真的很想学习如何去做 到目前为止,我有这个阵列: public static void main () {Song[] topTenSongs = {new Song("The Twist"), new Song ("Smooth"), new Song ("Mack the Knife"), new Song ("How Do I Live"), new Song ("P

在过去的六个小时里,我一直在尝试解决这段小代码,我真的很想学习如何去做

到目前为止,我有这个阵列:

public static void main ()
    {Song[] topTenSongs = {new Song("The Twist"), 
        new Song ("Smooth"),
        new Song ("Mack the Knife"),
        new Song ("How Do I Live"),
        new Song ("Party Rock Anthem"),
        new Song ("I Gotta Feeling"),
        new Song ("Macarena (Bayside Boys Mix)"),
        new Song ("Physical"),
        new Song ("You Light Up My Life"),
        new Song ("Hey Jude")
    };

    String[] tenSongNames = {"The Twist",
        "Smooth",
        "Mack the Knife",
        "How Do I Live",
        "Party Rock Anthem",
        "I Gotta Feeling",
        "Macarena (Bayside Boys Mix)",
        "Physical",
        "You Light Up My Life",
        "Hey Jude"};

        int [] songRatings = {2,8,10, 7,1,6,2,4,3,5};
我的目标是使用for-each循环来计算第二个绑定的歌曲数量,然后使用字符串变量和字符串连接来跟踪第二个绑定的歌曲标题

我该怎么做呢?我目前有以下几点:

for (Song s : topTenSongs) {
    int count = 0;
    if(s.getRating() == 2) {    
        System.out.println(count + 1);
    }
}
但我觉得这是错误的

谢谢大家!

我认为问题出在 整数计数=0 我应该在开学前就开始学习。因为计数总是返回到2,所以首先迭代songRatings数组,并在值==2时跟踪索引,从该索引的topTenSongs数组获取歌曲

for循环

弗雷奇


Java之于Javascript,犹如痛苦之于绘画,火腿之于仓鼠。他们完全不同。强烈建议有抱负的程序员尝试学习他们试图编写代码的语言的名称。发布问题时,请适当标记。您的歌曲对象是否也包含分级?字符串变量和字符串连接以跟踪第二个并列的歌曲标题。这不清楚,您需要保存到哪里以进行跟踪?还有什么?@Deadpool我需要找到评级均为2的歌曲,在本例中,这些歌曲是数组中索引0和索引7中的歌曲,以及这些歌曲的标题中的System.print.ln。这些歌曲将是Twist和Macarena Bayside男孩的混音。@mkjh不,歌曲对象只包括标题。我认为评级是在一个单独的数组中,称为songRatings。对不起,如果我的术语关闭了!已将其修复为int count=0。不过,我不确定现在应该在if语句和System.print.ln语句之间放置什么。我很好奇,作为一个for-each循环,这会是什么样子。我如何将这个for循环转换成那个呢?在foreach循环中,您将直接获得值,但为了保持索引跟踪,您需要一个变量,我还将添加@MathyPerson
 for(int i=0; i< songRatings.length; i++){
    if(songRatings[i]== 2){
       System.out.println("The song with rating 2 is :"+ tenSongNames[i]);
         // In the same way you can get songs from `topTenSongs` array of specific index `topTenSongs[i]`
          }
     }
IntStream.range(0, songRatings.length).filter(i->songRatings[i]==2).forEach(s->System.out.println(tenSongNames[s]));
int count =0;
for(int i: songRatings){
 count++;
  if(i==2){
    System.out.println("The song with rating 2 is :"+ tenSongNames[i]);
     }
   }