十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
lz 你好
成都创新互联公司专业为企业提供伊宁网站建设、伊宁做网站、伊宁网站设计、伊宁网站制作等企业网站建设、网页设计与制作、伊宁企业网站模板建站服务,10年伊宁做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
这个就是一个比较简单的算法题 , 你可以自己写
但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用
其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便
以下是实现代码:
import java.util.List;
import java.util.Scanner;
public class DeleteRepeated {
private String str;
private TreeSetString noReapted;//带有String类型的TreeSet泛型
public DeleteRepeated() {
Scanner in = new Scanner(System.in);
System.out.println ("输入一个字符串:");
str = in.nextLine();
noReapted = new TreeSet();
}
//清楚重复的数据
public void removeRepeated(){
for (int i = 0; i str.length(); i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型 所以先加一个""空格 , 转换成String型
//TreeSet泛型能保证重复的不加入 , 而且有序
}
str = "";
for(String index:noReapted){
str += index;
}
//输出
System.out.println (str);
}
public static void main(String[] args) {
DeleteRepeated dr = new DeleteRepeated();
dr.removeRepeated();
}
}
运行截图:
希望能帮助你哈
这4个构造函数分别是对1个,2个,3个,以及4个参数的处理,最好别删,如果非要删掉一些代码的话,建议删掉前面3个构造函数,保留最后的有4个参数那个,当然最后那个也要修改
代码:
person(String name,int age,int weight,String address){
this.name = name;
this.age = age;
this.weight = weight;
this.address = address;
}
(PS:纯手打,望采纳)
对于每个编码人员来说,避免重复代码可能是大家都想做的。对于有一定经验(对基本的OO原则有一定经验)的开发人员来说,大部分情况下都能比较自然地避免重复代码的问题,写代码的时候,感觉有逻辑重复的情况,会很自然的凭感觉经验做相应的处理和复用。以下是个人经验,供新手参考。 既然我们在用Java之类的面向对象的语言编码,那么重复代码可以大致分为如下两种情况: 1、类型体系之内(父类型和子类型、子类型之间)存在重复逻辑代码 2、类型体系之外的重复代码 【类型体系内的重复代码处理】 1、如果重复代码属于类型本身操作(即应该是以实例方法存在),则很自然的应用重构技巧,公共代码往上走。如果Sub Type之间有这种重复代码,把重复代码迁移到DefaultAdatper中。 2、如果重复代码不属于类型本身操作(即应该是以静态方法存在),则需要判断一下这种静态代码的功能使用范围: A、如果是非常全局性的,例如有关java流的辅助操作,则应该果断的抽取出来,封装到一个Utility工具类中,例如可以叫做IOUtil。把这个Utility类放置到非常底层模块中,这样上层很多功能模块中都可以使用,否则可能会导致上层多个模块中都有类似IOUtil的类,又是重复代码。1publicclassIOUtil{2/**3 *工具类,不需要产生实例。但是也不需要应用单态!!!4*/5privateIOUtil(){}67publicstaticInputStreambuildInputSteam(Filefile){//}89//其他公共静态操作10} B、如果这种静态操作只对本类型体系有意义,则有两种常用的处理方法:第一种是把这种静态方法迁移到基类DefaultAdapter中,但是不要在DefaultAdapter中放置过多的类似静态方法;第二种是把这种静态方法封装到一个helper助手类中,例如MyTypeHelper,其中放置了MyType类型体系中需要使用的一些静态方法。如果第一种DefaultAdapter中堆放了较多的静态方法,则可以用helper助手类的方式。1publicclassMyTypeHelper{2/**3 *助手类,不需要产生实例。但是也不需要应用单态!!!4*/5privateMyTypeHelper(){}67publicstaticbooleanvalidateParamer(Objectparamer){//}89//其他公共静态操作10} 这个helper一般需要和接口、默认适配类一起暴露,便于扩展子类型使用。示意图如下: 【类型体系之外的重复代码处理】 类型体系之外的重复代码处理相对就很简单了,根据重复代码功能适用范围,封装到对应的Util类或者Helper类中。这里就不细讲了~_~ 【有关公用代码的几个概念】 个人意见,仅供参考。 助手类(Helper class) :我觉得首先这个类产生的目的是为特定模块或者特定功能服务的(助手吗~_~),不是全局的。而且完全可以隐藏在特定模块内部,很多时候不需要暴露。Helper类的命名要有针对性,不能搞成一个麻辣烫,里面的静态操作既为这种功能服务,又为那种功能服务,尽量做个忠臣,不要同时当多个主子的助手。 工具类(Utility class) :一般是全局的,往往有一定普世价值,也就是说往往是全局通用的。 例如你在做一个模块,这个模块功能是处理表单,则关于处理表单的一些公用静态操作就应该放置到该模块的一个助手类中,名称类似于FormProcesserHelper。再有一个导出报表的功能,则对应的助手类可以称之为ExportReportHelper,建议这两个helper不要混在一起。有人可能会说,这样会不会导致大量的助手类呢?这边有个粒度把握的问题(经验会发生作用~_~),但是只要是助手类命名规范,则一个助手类的名字就基本上可以告诉用户你提供什么样的服务了。 假如你现在处理的是有关IO操作的重复代码,则需要迁移到全局的工具类中,因为这样的操作往往适应于全局的。 Facade class(门面类) :这个乍看起来和助手类有点像,往往是绑定于特定模块。但是,要搞清楚,门面类是用来封装子系统的,代理对模块常用核心功能的访问的,针对用户需要的常用场景提供一些辅助操作,帮助用户更好的使用此模块的主要功能。 面向客户端或者其他子系统或模块的,不是用来处理对应模块中重复代码的 !!!有关详细信息,请参加Facade设计模式的文档。 【注意】Helper class、Utility class、Facade class一般都不需要生实例,暴露的都是静态操作,更不需要误写成单态,别滥用单态!!!后记:: 关于重复代码的处理,个人以为既需要技巧(别人总结出来的技巧),更需要经验(经验往往给你感觉,跟着感觉走一般就不会太离谱~_~)。 希望对开发新手有作用~_~
java中找出数组中重复的数并去除的代码如下:
public static void testA() {
String [] str = {"Java", "C++", "Php", "C#", "Python", "C++", "Java"};
for (String elementA:str ) {
System.out.print(elementA + " ");
}
ListString list = new ArrayListString();
for (int i=0; istr.length; i++) {
if(!list.contains(str[i])) {
list.add(str[i]);
}
}
System.out.println();
String[] newStr = list.toArray(new String[1]); //返回一个包含所有对象的指定类型的数组
for (String elementB:newStr ) {
System.out.print(elementB + " ");
}
System.out.println();
}
所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。
举例:
int a[10]; 说明整型数组a,有10个元素。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
数组中的所有元素都具有相同类型(这一点和结构或类中的字段不同,它们可以是不同类型)。数组中的元素存储在一个连续性的内存块中,并通过索引来访问(这一点也和结构和类中的字段不同,它们通过名称来访问)。