配列リストには、その中で最小の番号が出現する前後にアスタリスクが付いているはずです。私はデバッグし、すべての変数は正しい値を保持していますが、何らかの理由で値を追加しません。私はあなたが行くようにlist
を構築する方が良いと思いArrayListに要素を追加しない
int smallest = array[0];
for (int i = 0; i < size; i++)
if (array[i] < smallest)
smallest = array[i];
String smallestString = String.valueOf(smallest);
ArrayList<String> list = new ArrayList<String>();
for(int i = 0;i < size; i++)
list.add(Integer.toString(array[i]));
for (int i = 0; i < list.size(); i++)
if (smallestString.equals(list.get(i))) {
list.add(i, "*****");
list.add(i + 2, "*****");
}
System.out.println("\n" + list);
return smallest;
'{' '}'ブロックを使用してループを区切る試してみてください、それが少なく、エラーになります-prone。 – Berger
前後に反復する場合、要素を追加すると現在の要素の後ろのすべてが右に移動するので、つまりリストが '1,2,3'ならば' * 'を追加するので、より大きなステップを踏む必要があることに注意してくださいインデックス0と2は '*、1、*、2,3 'となり、次の要素(' 2')はインデックス3にあります。 – Thomas
@Thomasなぜ2番目の行を追加したのですか?アスタリスクの –