ソートアルゴリズム計画その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ではない!!
なのでこのインポート宣言を消したら解決しました
うーん、パッケージって大切