0

我正在创建一个数组,它将对 arrayString[10][2] 进行排序,然后使用 JOptionPane 将结果显示给用户。二维数组的长度无关紧要,只需注意它不会被完全填充,从而导致空值。当我向用户显示信息时,我想排除空值。目前我已经使用了一个变量“isNull”来完成这项工作,但我知道它效率低下,并且正在寻找完成这项工作的正确方法。

包含两行数据的数组

String arrayString[][] = new String[10][2];
arrayString[0][0] = "Doe";
arrayString[0][1] = "John";

arrayString[1][0] = "Doe";
arrayString[1][1] = "Jane";

实际程序逻辑

String output = "";
int isNull = 0;
for (int i = 0; i < arrayString.length; i++)
{ 
  for (int j = 0; j < arrayString[i].length; j++)
  { 
    if ( arrayString[i][j] == null )
    {
      isNull = 1;
      break;
    }
    else
    output += arrayString[i][j] + "  ";
    isNull = 0;
  }
  if(isNull == 1)
    break;
  else
    output += " \n";
}

JOptionPane.showMessageDialog(null,output,"Results",JOptionPane.INFORMATION_MESSAGE);

感谢所有帮助人员,我没有回头查看我的代码并重新评估它并得到了我自己满意的答案。不过感谢您的回复。

解决了

for (int i = 0; i < arrayString.length; i++)
{ 
  for (int j = 0; j < arrayString[i].length; j++)
  { 
    if ( arrayString[i][0] == null)
      break;
    else
    output += arrayString[i][j] + "  ";
  }
  if ( arrayString[i][0] == null)
    break;
  else
  output += " \n";
}
4

1 回答 1

0
// Make a List of all anagram groups above size threshold.
List<List<String>> winners = new ArrayList<List<String>>();
for (List<String> l : m.values())
    if (l.size() >= minGroupSize)
        winners.add(l);

// Sort anagram groups according to size
Collections.sort(winners, new Comparator<List<String>>() {
    public int compare(List<String> o1, List<String> o2) {
        return o2.size() - o1.size();
    }});

// Print anagram groups.
for (List<String> l : winners)
    System.out.println(l.size() + ": " + l);

看这篇文章更准确: http ://docs.oracle.com/javase/tutorial/collections/algorithms/index.html#sorting

于 2013-09-22T17:33:24.637 回答