Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Data Structures Efficiency! Changing Course

Not sure how to implement the second part of this challenge.

The challenge is asking me to assign the newly created video as the second video in the course list.

What is the best way to do that?

Thanks in advance.

com/example/model/Course.java
package com.example.model;

import java.util.List;

public class Course {
  private String mName;
  private List<Video> mVideos; 

  public Course(String name, List<Video> videos) {
    mName = name;
    mVideos = videos;
  }

  public String getName() {
    return mName;
  }

  public List<Video> getVideos() {
    return mVideos;
  }

}
com/example/model/Video.java
package com.example.model;

public class Video {
  private String mTitle;

  public Video(String title) {
    mTitle = title;
  }

  public String getTitle() {
    return mTitle;
  }

  public void setTitle(String title) {
    mTitle = title;
  }

}
QuickFix.java
import com.example.model.Course;
import com.example.model.Video;

import java.util.Map;

public class QuickFix {

  public void addForgottenVideo(Course course) {
    Video video1 = new Video("The Beginning Bits");
    // TODO(1):  Create a new video called "The Beginning Bits"

    // TODO(2):  Add the newly created video to the course videos as the second video.
    //Not sure how to implement adding the above video into the course list as the second value, can you help?
    Course course1 = new Course(video1.getTitle(),)


  }

  public void fixVideoTitle(Course course, String oldTitle, String newTitle) {

  }

  public Map<String, Video> videosByTitle(Course course) {
    return null;
  }

}

2 Answers

Thanks, that did it!

andren
andren
28,558 Points

The Course class has a method called getVideos that you can call to get access to the video list of the Course object that has been passed to your method. Once you have access to that list you can simply add the video into it at index 1 as you would any other list.

Like this:

public void addForgottenVideo(Course course) {
  // TODO(1):  Create a new video called "The Beginning Bits"
  Video video1 = new Video("The Beginning Bits");

  // TODO(2):  Add the newly created video to the course videos as the second video.
  course.getVideos().add(1, video1); // Get courses list and add video at index 1
}