栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号