没有错误,但仍然无法工作。我搞不清楚出了什么问题。我们还没有在课堂上讨论节点的概念,所以我很难理解它
它的输出应该是:
瘦爱-鸟
更快乐-艾德·希兰
总有一天-切尔西卡特勒
public class HandsOnAct1 {
static LinkedList songs = new LinkedList();
static LinkedList artists = new LinkedList();
static LinkedList playlist = new LinkedList();
public static void Merge(){
int element= songs.size();
int number=0;
System.out.println(element);
if (number !=element){
playlist.add(number, songs);
playlist.add(number,artists);
number++;
}
System.out.println(playlist);
}
public static void main(String[] args) {
songs.add("Skinny Love");
songs.add("Happier");
songs.add("Sometimes");
artists.add("Birdy");
artists.add("Ed Sheeran");
artists.add("Chelsea Cutler");
Merge();
}
}
这里有一个使用递归的例子,因为我知道它是先决条件?
static LinkedList<String> songs = new LinkedList<>();
static LinkedList<String> artists = new LinkedList<>();
static LinkedList<String> playlist = new LinkedList<>();
songs.add("Skinny Love");
songs.add("Happier");
songs.add("Sometimes");
artists.add("Birdy");
artists.add("Ed Sheeran");
artists.add("Chelsea Cutler");
int index = 0;
static void merge() {
// if you want/need checks
if ( index >= artists.size()){
return;
}
playlist.add(songs.get(index) + " - " + artists.get(index));
System.out.println(playlist.get(index));
index++;
merge();
}
merge();
您自己的代码的主要问题是,您需要从函数内部再次调用merge,并像我所做的那样将索引移动到函数外部,或者将其作为参数(如public static void merge(int index)
(。然后你会像merge(index++)
一样从内部调用它。
我想这是意见问题。(如果你愿意,你可以阅读纯/不纯函数和命令式/函数式编程,这就是区别(