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 - Retired Efficiency! Changing Course

Angel Brambila
Angel Brambila
5,847 Points

Problems with Last task x_X :(.

oh well, the last task,said i need to update the key (title), in the fixvideoTitle Function, so . . . X_X, i tries with for, and if containskey, then remove the key (that returns the value of the deleted key), then i put(newTitle, video(with the value of the deleted key). but i cant pass x_X, then i try this last that you are watching, put the key and the value i get it from the other key.

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.TreeMap;

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.
        course.getVideos().add(1,video);
  }

  public void fixVideoTitle(Course course, String oldTitle, String newTitle) {
    Map<String, Video> videoSearch = videosByTitle(course);
    videoSearch.put(newTitle, videoSearch.remove(oldTitle));
  }

  public Map<String, Video> videosByTitle(Course course) {
    Map<String, Video> videosByTitle = new TreeMap<String, Video>();
    for (Video video : course.getVideos()) {
      videosByTitle.put(video.getTitle(),video);
    }
    return videosByTitle;
  }

}

1 Answer

Craig Dennis
STAFF
Craig Dennis
Treehouse Teacher

Hmmmm. What if you pulled the course out by the old title and then changed the title to the new one.

Let me know if that hint does the trick.

Angel Brambila
Angel Brambila
5,847 Points

OMG I DID IT!!! :D!!!! (sorry , im so happy), u were right Craig:

1.- I remove the old title, remove return me the value (video object). 2.- Storage that return value from remove, then i put(); the new object with the new title

(i didn't see that exist a setTitle xD, im sooooo blind XD).

Thanks you really much Craig :) :D!!!!!.