我试图弄清楚如何避免在排序算法中打印重复名称。
我忽略空字符串的原因是我正在实施的系统是一个售票系统,该系统仅显示名称列表,而不显示空插槽。
能帮我一下吗?
String[] name={"fiona","vacant","allen","fiona","david","vacant","vacant"};
for (int i = 0; i <= (name.length-1); i++){
for (int j = i+1; j < name.length; j++ ){
if (name[i].compareTo(name[j])>0) {
String temp = name[i];
name[i] = name[j];
name[j] = temp;
}
}
if (!name[i].equals("vacant")) {
System.out.println(name[i] + " ");
}
}
问题来源:Stack Overflow
只需检查您要打印的名称是否与上一个相同:
String[] name={"fiona","vacant","allen","fiona","david","vacant","vacant"};
for (int i = 0; i <= (name.length-1); i++){
for (int j = i+1; j < name.length; j++ ){
if (name[i].compareTo(name[j])>0) {
String temp = name[i];
name[i] = name[j];
name[j] = temp;
}
}
if (!name[i].equals("vacant") && (i == 0 || !name[i-1].equals(name[i]))) {
System.out.println(name[i] + " ");
}
}
回复来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。