JAVA编程综合练习(一)
练习目的:类、IO、集合、数据类型转换
题目需求:
假设你硬盘上存储这么一个文件:
"D:/java_code/IO/src/file01.txt"
此文件的信息是:
下面就直接给出程序学习吧! 程序1:
//学习目的:认识类对数据的处理方式
public class Record {
//数据块: id|设备号|类型|号码|金额
private String id;
private String devNo;
private String busiType;
private String userCode;
private int userAmount;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDevNo() {
return devNo;
}
public void setDevNo(String devNo) {
this.devNo = devNo;
}
public String getBusiType() {
return busiType;
}
public void setBusiType(String busiType) {
this.busiType = busiType;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public int getUserAmount() {
return userAmount;
}
public void setUserAmount(int userAmount) {
this.userAmount = userAmount;
}
}
主程序2:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class TableCalculate {
public static void main(String[] args) {
List StringList=new ArrayList<>(); //存储字符串
List RecordList=new ArrayList(); //存储对象
Map IdMap=new HashMap(); //计算设备号的总金额
Map DevNoMap=new HashMap();//计算类型号的总金额
StringList=new TableCalculate().ReaderFile("D:/java_code/IO/src/file01.txt"); //现在list里的字符串代表了每条记录
RecordList=new TableCalculate().StringToRecord(StringList); //把String 记录转Record
IdMap=new TableCalculate().CalculateIdUserAmount(RecordList,1); //计算
DevNoMap=new TableCalculate().CalculateIdUserAmount(RecordList,2); //计算
show(IdMap,1); //第二个参数是选择Map遍历的类型
show(DevNoMap,2); //第二个参数是选择Map遍历的类型
}
//写此的学习目的:学习 HashMap 的遍历
public static void show(Map map,int m)
{
if(m==1){
Iterator itm=map.keySet().iterator();
while(itm.hasNext())
{
String No = itm.next();
System.out.println(No+":"+map.get(No));
}
}
if(m==2){
Iterator> mapEntry=map.entrySet().iterator();
while(mapEntry.hasNext())
{
Map.Entry entry=mapEntry.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
}
//写此方法的学习目的:认识 Map 运用
public Map CalculateIdUserAmount(List RecordList,int k)
{
Map IdMap=new HashMap(); //运算表1
Map DevNoMap=new HashMap();//运算表2
if(k==1){
for (Record record : RecordList)
{
if(IdMap.containsKey(record.getDevNo()))
{
IdMap.put(record.getDevNo(),IdMap.get(record.getDevNo())+record.getUserAmount());
}
else
{
IdMap.put(record.getDevNo(),record.getUserAmount());
}
}
return IdMap;
}
if(k==2){
for (Record record : RecordList)
{
if(DevNoMap.containsKey(record.getBusiType()))
{
DevNoMap.put(record.getBusiType(),DevNoMap.get(record.getBusiType())+record.getUserAmount());
}
else
{
DevNoMap.put(record.getBusiType(),record.getUserAmount());
}
}
return DevNoMap;
}
else return null;
}
//写此方法的学习目的:ArrayList的存储和遍历
public List StringToRecord(List StringList)
{
List RecordList=new ArrayList(); //存储对象
//将StringList转换成对象Record存储 第一种方式
// for(String line:StringList)
// {
// String[] StringArray=line.split("\|");
// Record record=new Record();
// record.setId(StringArray[0]);
// record.setDevNo(StringArray[1]);
// record.setBusiType(StringArray[2]);
// record.setUserCode(StringArray[3]);
// record.setUserAmount(Integer.parseInt(StringArray[4]));
// RecordList.add(record);//存储对象的列表
// }
//将StringList转换成对象Record存储 第二种方式
// Iterator it=StringList.listIterator();
// while(it.hasNext()) //将StringList转换成对象Record存储
// {
// Record record=new Record();
// String[] strArray=it.next().split("\|");
// record.setId(strArray[0]);
// record.setDevNo(strArray[1]);
// record.setBusiType(strArray[2]);
// record.setUserCode(strArray[3]);
// record.setUserAmount(Integer.parseInt(strArray[4])); //重要知识
// RecordList.add(record);//存储对象的列表
// }
//将StringList转换成对象Record存储 第三种方式
for(int i=0;i ReaderFile(String file)
{
BufferedReader br=null;
try {
InputStream in=new FileInputStream(file); //文件读取的字节流
InputStreamReader ir=new InputStreamReader(in); //把字节流转换成字符流
br=new BufferedReader(ir); //字符缓冲流
List list=new ArrayList();
String str=null;
while((str=br.readLine())!=null)
{
if(str.startsWith("//")){continue ;}
list.add(str);
}
return list;
} catch (FileNotFoundException e) {
return null;
} catch (IOException e) {
return null;
}finally
{
try {
if(br!=null){
br.close();}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
(慢慢更新中)
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: web flash 视频播放器代码开源
