Что я хочу сделать, это найти хэш-сет по ключевому слову ..
У меня есть 3 класса ...
- Основной ()
- Библиотека
- Предмет (CD, DVD, Книжные классы)
В библиотеке я пытаюсь выполнить поиск элементов в хэш-наборах.
В классе Item есть функция getKeywords.
вот класс предметов ...
import java.io.PrintStream;
import java.util.Collection;
import java.util.*;
class Item
{
private String title;
private String [] keywords;
public String toString()
{
String line1 = "title: " + title + "\n" + "keywords: " + Arrays.toString(keywords);
return line1;
}
public void print()
{
System.out.println(toString());
}
public Item()
{
}
public Item(String theTitle, String... theKeyword)
{
this.title = theTitle;
this.keywords = theKeyword;
}
public String getTitle()
{
return title;
}
public String [] getKeywords()
{
return keywords;
}
}
class CD extends Item
{
private String artist;
private String [] members;
// private String [] keywords;
private int number;
public CD(String theTitle, String theBand, int Snumber, String... keywords)
{
super(theTitle, keywords);
this.artist = theBand;
this.number = Snumber;
// this.keywords = keywords;
}
public void addband(String... member)
{
this.members = member;
}
public String getArtist()
{
return artist;
}
public String [] getMembers()
{
return members;
}
// public String [] getKeywords()
// {
// return keywords;
//}
public String toString()
{
return "-Music-" + "\n"
+ "band: " + artist + "\n"
+ "# songs: " + number + "\n"
+ "members: " + Arrays.toString(members)
+ "\n" + super.toString()
// + "keywords: " + Arrays.toString(keywords)
+ "\n" + "\n" ;
}
public void print()
{
System.out.println(toString());
}
}
class DVD extends Item
{
private String director;
private String [] cast;
private int scenes;
// private String [] keywords;
public DVD(String theTitle, String theDirector, int nScenes, String... keywords)
{
super(theTitle, keywords);
this.director = theDirector;
this.scenes = nScenes;
// this.keywords = keywords;
}
public void addmoviecast(String... members)
{
this.cast = members;
}
public String [] getCast()
{
return cast;
}
public String getDirector()
{
return director;
}
// public String [] getKeywords()
// {
// return keywords;
// }
public String toString()
{
return "-Movie-" + "\n"
+ "director: " + director + "\n"
+ "# scenes: " + scenes + "\n"
+ "cast: " + Arrays.toString(cast) + "\n"
+ super.toString()
// + "keywords: " + Arrays.toString(keywords)
+ "\n" + "\n" ;
}
public void print()
{
System.out.println(toString());
}
}
class Book extends Item
{
private String author;
private int pages;
public Book(String theTitle, String theAuthor, int nPages, String... keywords)
{
super(theTitle, keywords);
this.author = theAuthor;
this.pages = nPages;
// this.keywords = keywords;
}
public String getAuthor()
{
return author;
}
//public String [] getKeywords()
// {
// return keywords;
//}
public void print()
{
System.out.println(toString());
}
public String toString()
{
return "-Book-" + "\n"
+ "Author: " + author + "\n"
+ "# pages " + pages + "\n"
+ super.toString()
// + "keywords: " + Arrays.toString(keywords)
+ "\n" + "\n" ;
}
}
Надеюсь, я вас не смутил? Мне нужна помощь с функцией itemsForKeyword (ключевое слово String) ..
первое переданное ключевое слово - "научная фантастика", и я хочу найти ключевые слова в наборах и вернуть совпадения.
Что я делаю не так?
Спасибо