有关IO流的JAVA编程,要求:把一个数组的元素复制到另个数组;去除重复元素不能用SET集合
.ajax.test;
import java.io.File;
import java.io.FileWriter;
import java.util.Arrays;
/**
* 把一个数组的元素复制到另个数组; 去除重复元素不能用SET集合; 每次复制的记录输到一个文件里
*
* @author ajax_2003
* @version 1.0, 2009-7-26
*
*/
public class CopyArrayAndRemoveDuplicate {
private static String FILE_PATH = "d:/abc.txt";
private static File file;
static {
file = new File(FILE_PATH);
}
/**
* 取出冗余数据
*
* @param nums
* 原数组
*/
private int[] removeDuplicate(int[] nums) throws Exception {
int[] tmpArray = new int[nums.length];
int count = 0;
loop: //
for (int i = 0; i < nums.length; i++) {
int tmp = nums[i];
for (int j = 0; j < count; j++) {
if (tmp == tmpArray[j])
continue loop;
}
tmpArray[count++] = tmp;
log("成功复制了元素" + tmp);// 写日志
}
return copyArray(tmpArray, 0, count);
}
/**
* 拷贝数组
*
* @param srcArray
* 要拷贝的数组
* @param startIndex
* 拷贝起始索引
* @param endIndex
* 拷贝结束索引
* @return 结果数组
*/
private int[] copyArray(int[] srcArray, int startIndex, int endIndex)
throws Exception {
if (endIndex <= startIndex)
throw new Exception("Argumens wrong!");
int[] desArray = new int[endIndex - startIndex];
System.arraycopy(srcArray, startIndex, desArray, 0, desArray.length);
return desArray;
}
/**
* 输出操作日志(即: 每次复制的记录输到一个文件里)
*
* @param oprate
*/
private void log(String oprate) {
FileWriter out = null;
try {
out = new FileWriter(file, true);
out.write(oprate + "
");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
out = null;
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
int[] nums = { 1, 223, 1, 2, 2, 2, 3, 2, 3, 34, 45, 5, 5, 3, 23, 2, 2,
3, 4, 5, 5, 6, 7, 78, 8, 9, 34, 90, 45, 675, 4, };
int[] finalArray;
try {
finalArray = new CopyArrayAndRemoveDuplicate()
.removeDuplicate(nums);
System.out.println(Arrays.toString(finalArray));
} catch (Exception e) {
e.printStackTrace();
}
}
}
有些地方可能考虑的不完全,见谅!我也想学java的编程,但不知道怎么学,请学过的人告一下学习的方法,谢了!
首先要知道学java要用来干什么?里面有两个主要的方向,j2ee,j2me,前者用于开发企业级应用系统,后者用于手机,还有个j2se用于桌面程序,但不管你学哪个,j2se是基础,先把基础学好再说,但有时候光看基础可能不能有深刻体会,可以先快速往后学再回过来巩固基础的方法。
如何自学Java编程?有自学过的朋友么
Java自学的顺序首先是javaSE:基础语法、递归、面向对象、异常处理、数组、常用类、IO、线程、网络编程基本的章节顺序就是这样的。
学好了javaSE就是java基础的一些东西之后,有两个方向,JavaEE(某宝京东等) 与 Android(移动APP,近期 Android 需求没那么大了)。
如果是 JavaEE 方向,就可以学习 JavaWeb 了,包含(HTML、CSS、servlet、jsp等),Web 后可以做个 web 项目。
之前都是为后面框架打基础,值后就会学习各种框架(如:Spring、SpringMVC、Mybatics 简称SSM等)。
当框架学完后,这个时候会发现很得心应手。
而在自学java过程一定要理论结合实践,多操作,在实践中才能发现问题,解决问题,这样才能提高。
最后个人经验多说一点,看书自学实在很枯燥,可以看尚硅 谷的谷粒学院Java学习路线图和视频,需要学习哪些知识点也都写的非常清楚,都一一列出了,需要的可以搜来学习。
LOCVPS发布了7月份促销信息,全场VPS主机8折优惠码,续费同价,同时香港云地/邦联机房带宽免费升级不加价,原来3M升级至6M,2GB内存套餐优惠后每月44元起。这是成立较久的一家国人VPS服务商,提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建站和远程办...
racknerd怎么样?racknerd今天发布了几款美国特价独立服务器的促销,本次商家主推高配置的服务器,各个配置给的都比较高,有Intel和AMD两种,硬盘也有NVMe和SSD等多咱组合可以选择,机房目前有夏洛特、洛杉矶、犹他州可以选择,性价比很高,有需要独服的朋友可以看看。点击进入:racknerd官方网站RackNerd暑假独服促销:CPU:双E5-2680v3 (24核心,48线程)内存...
LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...
io编程为你推荐
旺旺群发淘宝怎样旺旺群群发createfile失败CreateFile失败,代码5拒绝访问(高分在线求助!!!)短信营销方案短信平台应该如何推广和运营啊?动态图片格式动态图片什么格式avc是什么格式格式工厂转的[AS3 720 AVC]mp4是什么格式flash实例flash CS3 实例的属性面板里的实例名称是指什么pat是什么格式怎么将自己做的PS图片保存为PAT格式?上行宽带上行宽带和下行宽带代表什么?wow服务器状态我电脑上的魔兽服务器状态很好.但是还是玩不起来.请问可以玩了不?云办公平台云办公平台对企业办公有什么好处呢?
vps推荐 免费申请网站域名 免费域名解析 已备案域名出售 秒解服务器 z.com themeforest 便宜建站 空间打开慢 免费个人博客 css样式大全 512m内存 蜗牛魔方 腾讯实名认证中心 1g内存 免费申请网站 最漂亮的qq空间 www789 国内空间 卡巴斯基试用版下载 更多