
正文
java解决重复代码例子 java有重复的数据
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
消去java中的重复代码
这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:纯手打,望采纳)
相关问答
Q1: 在java jsp中怎么处理用户多次点击提交按钮造成数据重复
java jsp处理用户多次点击提交按钮造成数据重复,最常见的方法是点击按钮提交之后,让线程休眠几秒再执行,如下代码:
1.提交的表单页面
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
!DOCTYPE HTML
html
head
titleForm表单/title
/head
body
form action="${pageContext.request.contextPath}/servlet/DoFormServlet" method="post"
用户名:input type="text" name="username"
input type="submit" value="提交" id="submit"
/form
/body
/html
2.处理提交表单的servlet,里面有提供防止重复提交的代码,如下:
package xdp.gacl.session;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DoFormServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//客户端是以UTF-8编码传输数据到服务器端的,所以需要设置服务器端以UTF-8的编码进行接收,否则对于中文数据就会产生乱码
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("username");
try {
//让当前的线程睡眠3秒钟,模拟网络延迟而导致表单重复提交的现象
Thread.sleep(3*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("向数据库中插入数据:"+userName);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Q2: 避免重复代码:重复代码如何处理(仅供参考)
对于每个编码人员来说,避免重复代码可能是大家都想做的。对于有一定经验(对基本的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一般都不需要生实例,暴露的都是静态操作,更不需要误写成单态,别滥用单态!!!后记:: 关于重复代码的处理,个人以为既需要技巧(别人总结出来的技巧),更需要经验(经验往往给你感觉,跟着感觉走一般就不会太离谱~_~)。 希望对开发新手有作用~_~
Q3: Java数组中重复数据的删除
java数组中去掉重复数据可以使用set集合,set本身内部是不保存重复的数据的,如下代码:
import java.util.Arrays;
import java.util.Set;
import java.util.TreeSet;
public class ceshi {
public static void main(String[] args) {
int[] testArr = { 5, 5, 1, 2, 3, 6, -7, 8, 6, 45, 5 };//新建一个int类型数组
System.out.println(Arrays.toString(testArr));
SetInteger set = new TreeSetInteger();//新建一个set集合
for (int i : testArr) {
set.add(i);
}
Integer[] arr2 = set.toArray(new Integer[0]);
// 数组的包装类型不能转 只能自己转;吧Integer转为为int数组;
int[] result = new int[arr2.length];
for (int i = 0; i result.length; i++) {
result[i] = arr2[i];
}
System.out.println(Arrays.toString(arr2));
}
}
运行结果如下:
Q4: Java 写重复代码
这么长居然是一个语句。。
不应该图简便这么写吧
一个一个create然后add
这样用for循环就可以重复add了阿
Q5: java如何去除字符串中重复的字符
lz 你好
这个就是一个比较简单的算法题 , 你可以自己写
但是用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();
}
}
java解决重复代码例子的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java有重复的数据、java解决重复代码例子的信息别忘了在本站进行查找喔。







