Java Java Data Structures Efficiency! Changing Course

Vivek Reddy
PRO
Vivek Reddy
Pro Student 5,486 Points

task 3

public void fixVideoTitle(Course course, String oldTitle, String newTitle) { Map<String, Video> newTitleVideos = videosByTitle(course); for(Video newTitleVideo : course.getVideos()){

  newTitleVideos.put(newTitle, newTitleVideo.getValue(oldTitle));
   }

}

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.List;
import java.util.Map;
import java.util.HashMap;

public class QuickFix {

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

    Video video = new Video("The Beginning Bits");

    // TODO(2):  Add the newly created video to the course videos as the second video.

      List<Video> mVideos = course.getVideos();
    mVideos.add(1,video);
  }

  public void fixVideoTitle(Course course, String oldTitle, String newTitle) {
    Map<String, Video> newTitleVideos = videosByTitle(course);
       for(Video newTitleVideo : course.getVideos()){

      newTitleVideos.put(newTitle, newTitleVideo.getValue(oldTitle));
       }

  }

  public Map<String, Video> videosByTitle(Course course) {
    Map<String, Video> titleVideos = new HashMap<String, Video>();
    String newTitle;
    for( Video newVideo : course.getVideos()){

      titleVideos.put(newVideo.getTitle(),newVideo);
    }
    return titleVideos;
  }

}

1 Answer

public void fixVideoTitle(Course course, String oldTitle, String newTitle) {
  videosByTitle(course).get(oldTitle).setTitle(newTitle);
}