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]);
}
}