如何对String数组进行排序

时间:2012-11-12 19:17:52

标签: java sorting

我有一个名为String的{​​{1}}数组(为了论证,我们只能说它包含一个故事中的单词)。我想将此数组传递给一个方法,该方法将按字母顺序对它们进行排序并分析单词。我在SO上看了很多,很多人都建议这个场景使用myArray。所以我在我的方法中使用了这一行,传入了java.util.Arrays.sort(myArray),并对它进行了计算等等。

然而,最近我注意到这将永久排序myArray也就是说,在我退出方法之后,数组仍然会被排序。有没有办法让我只在方法范围内对数组进行排序?

示例代码:

myArray.

3 个答案:

答案 0 :(得分:8)

String temp[] = java.util.Arrays.copyOf(doc1,doc1.length);
java.util.Arrays.sort(temp);

答案 1 :(得分:4)

制作数组副本,对该副本进行排序并使用相同的内容。

  String [] sortedDocuments = new Sting[document.length];
  Systems.arraycopy(document, 0, sortedDocuments , 0, document.length);
  Arrays.sort(sortedDocuments );

  String [] sortedDocuments = Arrays.copyOf(document, document.length);
  Arrays.sort(sortedDocuments );

在您的方法中使用sortedDocuments数组。原始数组document保持不变。

答案 2 :(得分:1)

如果您只想计算唯一单词,请更好地使用以下代码。没有必要对数组进行排序以计算唯一元素。

public int countUniqueElements(Object[] array) {
    return new HashSet(Arrays.asList(array)).size();
}