请问大家一个题目

saily_girl 2007-07-30 09:29:13
15个字符串, asd,fdfdf,efd,fsa,asd,efewd,efd,gff,few,fswws,efe,efe,weqw,wew,weqxwererwe 判断这15个字符串中有没有重复的字符串,有则打印yes,无则打印no
...全文
186 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
MagicxiaoZ 2007-07-31
  • 打赏
  • 举报
回复
public static boolean isRepeat(Object[] o)
{
List l = new ArrayList();
for(int i = 0; i< o.size();i++)
{
if(l.contains(l))
return true;
l.add(o[i]);
}
return false;
}

不好意思啊,编译不知道能不能通过,在家用txt编辑的。
不过大体意思差不多lz应该能看懂吧。。。
嘻嘻嘻
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
HashSet中插入重复的数据会直接过滤掉后面的,比如插入"efe","wew","weqw", "efe"
实际上插入的是:"efe","wew","weqw"
另外:Arrays.asList会把Arrays里的每个值做个List的一个元素.
softwarefarmer 2007-07-30
  • 打赏
  • 举报
回复
对了!哥们不好意思!没注意你有排序!呵呵!!强!
saily_girl 2007-07-30
  • 打赏
  • 举报
回复
是啊,有点看不懂
softwarefarmer 2007-07-30
  • 打赏
  • 举报
回复
用hash表的哥们!我感觉你的好象不太对!能给出解释好吗?
softwarefarmer 2007-07-30
  • 打赏
  • 举报
回复
package aa;

public class Comparestring {
String[] letter={"a","b","c","d","a"};
int k=0;

public void test(){
for(int i=0;i<letter.length-1;i++){
for(int j=i+1;j<letter.length;j++){ //按冒泡法进行比较
if(letter[i].equals(letter[j])){
k=1;
}
}
}
if(k==1){//利用判断标志确定
System.out.println("yes");
}else{
System.out.println("no");
}
}

public static void main(String args[]){
Comparestring com=new Comparestring();
com.test();
}

}
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
System.out.println(isRepeat(cc)?"yes":"no");
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
package ihavegotyou;

import java.util.*;
public class Compare {


static boolean hasRepeat(String[] str)
{
Arrays.sort(str);
for(int i=0;i<str.length-1;i++)
if(str[i].hashCode()==str[i+1].hashCode())
return true;
return false;
}

public static boolean isRepeat(java.lang.Object[] array) {
Set set = new HashSet(Arrays.asList(array));
return !(set.size() == array.length);
}


public static void main(String[] args) {
String cc[]={"fswws","efe","wew","weqw","efe","weqxwererwe"};
System.out.println(isRepeat(cc));
System.out.println(hasRepeat(cc));
}

}
saily_girl 2007-07-30
  • 打赏
  • 举报
回复
可以写出完整、代码吗?
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
转化为hashCode比较,用ArraySort排一下序,在循环中保证中间的元素不等于两边任意元素,就说明没有重复.
zapdos 2007-07-30
  • 打赏
  • 举报
回复
可以两两比较,但是效率差
或许用分类的方法会更容易实现一些
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
上面写错了:
public static boolean IsRepeat(java.lang.Object[] array) {
Set set = new HashSet(Arrays.asList(array));
return !(set.size() == array.length);
}
IhaveGotYou 2007-07-30
  • 打赏
  • 举报
回复
import java.util.*;

public static boolean IsArrayElementSame(java.lang.Object[] array) {
Set set = new HashSet(Arrays.asList(array));
return set.size() == 1;
}
axia6395 2007-07-30
  • 打赏
  • 举报
回复
类似冒泡排序的方式。可以减少复杂度
OverSoul 2007-07-30
  • 打赏
  • 举报
回复
一个一个比较不就行了!
还是其他什么意思?

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧