如何使用java对2d字符串数组进行排序?
我使用enum和ArrayList创建了一组卡片,并使用以下代码将ArrayList转换为数组:
private void listToArray(ArrayList<PlayingCard> cardList, PlayingCard[] cardArray)
{
cardArray = cardList.toArray(cardArray);
}
然后我继续将对象数组转换为字符串数组:
private void transfer(PlayingCard[] cardArray, String[] strArray)
{
for (int k = 0; k < strArray.length; k ++)
{
strArray[k] = cardArray[k].toString();
}
}
现在我想使用13列和4行对我的卡片的输出进行排序,但是,我在使用sort2D方法时遇到了ArrayIndexOutOfBoundsException
private void transfer2D(String[][] twoD, String[] strArray)
{
for (int a = 0; a < this.rows ; a++)
{
for (int b = 0; b < this.MAXC; b++)
{
twoD[a][b] = strArray[(a*(twoD[a].length)+b];
}
}
}
private void sort2D(String[][] twoD)
{
for (int c = 0; c < twoD.length ; c++)
{
for (int d = 0; d < twoD.length - 1; d++)
{
if(twoD[d][this.MAXC].compareTo(twoD[d + 1][this.MAXC]) > 0)
{
String[] tempArray = new String[twoD[d].length];
tempArray = twoD[d];
twoD[d] = twoD[d + 1];
twoD[d+1] = tempArray;
}
}
}
}
private void print2D(String[][] strArray)
{
for (int e = 0; e < strArray.length; e++)
{
System.out.println(strArray);
}
}
# 1 楼答案
更改此行:
为此:
那就行了