黑马程序员技术交流社区
标题:
我想去除字符串数组s中的重复值
[打印本页]
作者:
gzbbxu
时间:
2013-6-28 06:09
标题:
我想去除字符串数组s中的重复值
本帖最后由 孙百鑫 于 2013-6-30 08:48 编辑
有这个方法可是不太理解
String s[100]
HashSet hs = new HashSet();
for(int r = 0;i < s.length;r++){
hs.add(s[r]);
}
s = (String[])hs.toArray(new String[0]);
作者:
gzbbxu
时间:
2013-6-28 06:10
new String[0];是什么意思?
作者:
王磊
时间:
2013-6-28 07:19
toArray()方法的重载形式,可以返回一个指定类型的数组。参数是作为存放该方法取出集合中元素的的容器。
在楼主的这个例子里,new String[0]一是为了满足方法格式,作为参数使用。二是为了限定返回的的数组类型为String类型。
至于这个数组到底new多长是无所谓的,因为这个方法如果返回的数组超过了这个给定的数组长度,系统会重新分配一个新的同类型数组用于存储获取集合得到的元素。
作者:
chensc
时间:
2013-6-28 08:37
学习学习!
作者:
L.I.F.E
时间:
2013-6-28 08:37
通过查阅API:
<T> T[] toArray(T[] a)返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将分配一个具有指定数组的运行时类型和此 collection 大小的新数组。
假定 x 是只包含字符串的一个已知 collection。以下代码用来将 collection 转储到一个新分配的 String 数组:
String[] y = x.toArray(new String[0]); 注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。
作者:
郭伟杰
时间:
2013-6-28 09:06
Set里面的值都是唯一的,把S中的字符串存入HashSet时,重复值进不去,从而保证里面的值都是唯一的。得到的HashSet就是S中没有重复的元素。再把HashSet重新转变成字符串数组。
作者:
280270738
时间:
2013-6-28 09:35
string自身就具备比较性,根本不用去比较了,直接往集合里添加就行了
作者:
孙百鑫
时间:
2013-6-30 08:48
楼主您好,帖子长时间没有动态我已经将您的帖子改成已解决。如有问题请私密我哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2