Jag har en ArrayList som innehåller arraylists där varje arraylists innehåller ord som simulerar en rad.
Nu vill jag sortera matrisen i alfabetisk ordning, hoppas någon förstår! Någon som vill hjälpa mig på traven?
Alltså jag använder mig av en enkel selectionsort:
for (int i=0; i<shift.getLineCount()-1; i++) {
int min = indexOfMin(i);
tmpArr = shift.getLine(min);
shift.setLine(shift.getLine(i), min);
shift.setLine(tmpArr, i);
}
Där shift innehåller matrisen.
Det jag har problem med är att hitta minsta index (alltså minsta värdet på strängarna) :
private int indexOfMin(int start)
{
int minIndex = start;
boolean check = false;
for (int i=start+1; i<shift.getLineCount(); i++)
{
int word=0;
for (word=0;word<=shift.getLine(i).size();word++)
{
int ch=0;
for (ch=0;ch<shift.getWord(i, word).length();ch++)
{
// if (ch == shift.getWord(minIndex,word).length()-1 & ch == shift.getWord(i,word).length()-1 & (shift.getWord(i,word).charAt(ch) == shift.getWord(minIndex,word).charAt(ch)))
// {
// break;
// }
if (ch == shift.getWord(minIndex,word).length()-1)
{
//minIndex=i;
check=true;
break;
}
else if (shift.getWord(i,word).charAt(ch) < shift.getWord(minIndex,word).charAt(ch))
{
minIndex = i;
check=true;
break;
}
if (check)
break;
}
if (check)
break;
}
}
return minIndex;
}
Denna kodsnutt är helt på tok, men jag har provat o provat men får det inte helt rätt!