なぜnew String[0]内部に引数が必要なのtoArrayですか?
saved = getSharedPreferences("searches", MODE_PRIVATE);
String[] mystring = saved.getAll().keySet().toArray(new String[0]);
    あなたが戻ってくるようにString[]。引数のないものは、 を返しますObject[]。
このメソッドには 2 つのバージョンがあります。
配列を渡すString[]ことで、ジェネリック バージョンを使用しています。
配列を渡すより良い方法は、メソッドで新しい配列を作成する必要がないように、サイズ 0 ではなくString[]のサイズで初期化することです。Set
Set<String> set = saved.getAll().keySet();
String[] mystring = set.toArray(new String[set.size()]);
    戻り値の型を提供し、コンパイル時のあいまいさを防ぐためです。
そのメソッド呼び出しの署名は次のとおりです。<T> T[] toArray(T[] a)
一方、空のパラメーター one はObject[] toArray()