栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中对字符串数组进行排序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中对字符串数组进行排序

您得到

NullPointerException
s
的原因可以由(强调我的)的javadoc
Arrays#sort()
解释:

根据对象的自然顺序,将指定对象数组按升序排序。 数组中的所有元素都必须实现

Comparable
接口。

因为

Arrays.sort()
期望
Comparable
元素而不是
null
值,所以
NullPointerException
当方法尝试调用时,您最终得到a
compareTo()

解决此问题的“立即解决”的方法是简单地确保

null
将数组中的所有元素替换为非
null
,例如
""
。因此,请在创建数组时以及删除
String
和将
null
元素设置为之后遍历数组
""
。但是,此解决方案对于您的代码而言可能效果不佳,因为在
String
删除每个解决方案之后都需要另一个循环,这可能会增加工作量。至少由于
String
池的魔力,它不需要您创建一堆对象,因此它比使用其他对象可能要好一些。

更好的解决方案是只使用

ArrayList<String>
而不是原始数组。毕竟,您已经在使用来管理
addString()
removeString()
,因此从数组到数组的转换要少得多
ArrayList
。此外,您在排序时无需担心NPE(至少在您的用例中;在排序时添加
null
Collection
仍然会导致NPE)。

您也可以只使用原始数组,但是管理该数组会很烦人,因此我不建议您这样做。如果操作正确,则不必担心NPE。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号