有关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学习路线图和视频,需要学习哪些知识点也都写的非常清楚,都一一列出了,需要的可以搜来学习。
久久网云怎么样?久久网云好不好?久久网云是一家成立于2017年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,久久网云目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港荃湾CN2弹性云服务器。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为...
TMThosting发布了一个2021 Summer Sale活动,针对西雅图VPS主机提供月付7折优惠码,年付65折优惠码,独立服务器提供95折优惠码,本轮促销活动到7月25日。这是一家成立于2018年的国外主机商,主要提供VPS和独立服务器租用业务,数据中心包括美国西雅图和达拉斯,其中VPS基于KVM架构,都有提供免费的DDoS保护,支持选择Windows或者Linux操作系统。Budget ...
Hostodo 商家是比较小众的国外VPS主机商,这不看到商家有推送促销优惠在美国西岸的斯波坎机房还有少部分库存准备通过低价格促销,年付低至12美元Linux VPS主机,且如果是1GB内存方案的可以享受六六折优惠,均是采用KVM架构,且可以支付宝付款。第一、商家优惠码优惠码:spokanessd 1GB+内存方案才可以用到优惠码,其他都是固定的优惠低至年12美元。第二、商家促销这里,我们可以看到...
io编程为你推荐
ata考试ata考试只要及格就能拿证吗?如果不能,需要拿多少分?外国最火开放的直播app手机上看国外电视直播软件哪个好上行宽带上行宽带是什么?java程序员招聘为什么Java程序员工资都很高全局钩子求助:全局钩子是怎么回事啊?下载的游戏为什么会安装钩子?求大神帮助特斯拉model3降价小鹏P7和特斯拉Model 3,买哪个更加划算?yui3求Yui的详细资料gbk内码Gbk内码查询在线沟通网络沟通的问题有哪些100days英文的一百天怎么说
美国vps 国外vps主机 万网免费域名 adman cve-2014-6271 52测评网 中国电信测速112 idc是什么 hkt 搜索引擎提交入口 linux使用教程 银盘服务是什么 美国独立日 移动服务器托管 外贸空间 114dns 服务器硬件配置 阿里云邮箱申请 杭州电信 腾讯服务器 更多