0

DVDをコレクションに加えています。そして、DVDが追加されるたびに並べ替えようとしています。エラーメッセージが表示され続けます:

Exception in thread "main" java.lang.NullPointerException
    at DVDCollection.addDVD(DVDCollection.java:44)

修正方法を教えていただけますか?

    public void addDVD (String title, String director, int year,
  double cost, boolean bluray)
   {
    if (count == collection.length)
    increaseSize();
    collection[count] = new DVD (title, director, year, cost, bluray);
    totalCost += cost;
    count++;

    if (count > 0)
    {
        int min;
        for (int i = 0; i < collection.length - 1; i++)
        {
            min = i;
            for (int j = i + 1; j < collection.length; j ++)
            {
               if(collection[j].getDirector().compareTo(collection[i].getDirector()) <   0)
               min = j;

               temp[min] = collection[min];
               collection[min] = collection[j];
               collection[j] = temp[min];
            }
        }
    }


}
public class Movies
 {
    //-----------------------------------------------------------------
    // Creates a DVDCollection object and adds some DVDs to it. Prints
        // reports on the status of the movies.
     //-----------------------------------------------------------------
public static void main (String[] args)
{
    DVDCollection movies = new DVDCollection();
    movies.addDVD ("The Godfather", "Francis Ford Coppola", 1972, 24.95, true);
    movies.addDVD ("District 9", "Neill Blomkamp", 2009, 19.95, false);
    movies.addDVD ("Iron Man", "Jon Favreau", 2008, 15.95, false);
    movies.addDVD ("All About Eve", "Joseph Mankiewicz", 1950, 17.50, false);
    movies.addDVD ("The Matrix", "Andy & Lana Wachowski", 1999, 19.95, true);
    System.out.println (movies);
    movies.addDVD ("Iron Man 2", "Jon Favreau", 2010, 22.99, false);
    movies.addDVD ("Casablanca", "Michael Curtiz", 1942, 19.95, false);
    System.out.println (movies);



    System.out.println(movies);

     }
   }
4

1 に答える 1

1

Java には便利なライブラリがたくさんあります。車輪の再発明や手動での並べ替えを行う必要はありません (学習を除く)。

したがって、DVDはディレクターに基づく比較でComparableを実装し、次にTreeSetを使用します。

これは、ツリー構造を使用して要素を自然な順序で並べ替えたセットです。挿入ごとにコレクションを並べ替えるよりもはるかに効率的です。

于 2013-10-06T20:05:24.957 に答える