![](/img/trans.png)
[英]How to sort each row in a 2d String array in java using Arrays.sort?
[英]How to sort a 2d String array using java?
我使用枚舉和 ArrayList 創建了一副紙牌,使用以下代碼將 ArrayList 轉換為數組:
private void listToArray(ArrayList<PlayingCard> cardList, PlayingCard[] cardArray)
{
cardArray = cardList.toArray(cardArray);
}
然后我繼續將 object 數組轉換為字符串數組:
private void transfer(PlayingCard[] cardArray, String[] strArray)
{
for (int k = 0; k < strArray.length; k ++)
{
strArray[k] = cardArray[k].toString();
}
}
現在我想使用 13columns 和 4rows 對我的卡片的 output 進行排序,但是,我使用我擁有的 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);
}
}
更改此行:
for (int d = 0; d < twoD.length - 1; d++)
對此:
for (int d = 0; d < twoD[c].length - 1; d++)
然后它將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.