【发布时间】:2012-11-25 19:34:34
【问题描述】:
我想知道是否有比执行以下操作更有效的方法来交换数组中的两个元素:
String temp = arr[1];
arr[1] = arr[2];
arr[2] = temp;
好吧,这显然还不错,甚至是错误的,但是我需要经常交换,所以我很感兴趣是否有任何 Lib 或其他东西可以提供更有效的方法来做到这一点?
【问题讨论】:
-
对于字符串?不,不是。如果您需要经常这样做,您还不如滚动一次自己的功能,然后它就不麻烦了
-
如果你可以使用 List 而不是 Array,你可以使用 Collections.swap(List, i, j)。
-
@Sergio Nakanishi:有趣的一点,也许我可以切换到 Collections,但是我不确定纯 Array 的使用会不会更快?
-
@Robin:我通常更喜欢使用 ArrayList 而不是数组。 ArrayList 在内部使用数组,调用方法来操作数组的开销并不显着。 《Effective Java》这本书有更完整的理由选择 List 而不是数组。
-
@SergioNakanishi 谢谢你的书提示。我刚用谷歌搜索了一下,感觉还不错。