shokosブログ

プログラミング

ソートアルゴリズム計画その1.7

QuickSortクラスでSortableインタフェースのsortメソッドを実装

import java.util.ArrayList;
import java.util.List;



public class QuickSort implements Sortable {

	List<Integer> quickList = new ArrayList();


	public List<Integer> sort(List<Integer> list) {
		List<Integer> sortList = new ArrayList();
		sortList = list;
		int size = sortList.size();
		if (size == 1 || size == 0) {
			return sortList;
		} else {
			List<Integer> left = new ArrayList<Integer>();
			List<Integer> right = new ArrayList<Integer>();
			Integer center = sortList.get(size / 2);
			for (int i = 0; i <= size - 1; i++) {
				if (i != (size / 2)) {
					if (sortList.get(i) <= center) {
						left.add(sortList.get(i));
					} else {
						right.add(sortList.get(i));
					}
				}
			}

			List<Integer> result = new ArrayList<Integer>();
			result.addAll(sort(left));
			result.add(center);
			result.addAll(sort(right));
			return result;
		}

	}





}

ここで超つまづきました
Sortableインターフェースの○○メソッドを実装してくださいってエラーメッセージがでていました

??

○○メソッドなんてSortableで作ってないぞ??

って思い悩んでいたらアドバイスいただきました

ソースの上のほうを見ると、

import org.junit.runner.manipulation.Sortable;

ってインポート宣言が勝手にされていました

わたしが実装したかったのは自分のパッケージのSortableインタフェースのメソッドであって、
org.junit.runner.manipulation.Sortableではない!!

なのでこのインポート宣言を消したら解決しました

うーん、パッケージって大切