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(); } } } }
(慢慢更新中)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 7个步骤让PC网站自动适配手机网页
- 下一篇: JAVA基础编程练习题--50道