Java 筆試題的演算法題之io程式設計(一)
題目:刷卡記錄:名字-金錢 讀取並找出刷卡次數最多,單筆消費最多
程式碼:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map.Entry;
//刷卡記錄:名字-金錢 讀取並找出刷卡次數最多,單筆消費最多
public class IoTest {
public static void main(String[] args) {
FileReader fr =null;
BufferedReader br= null;
ArrayList<Node> al = new ArrayList<Node>();
HashSet<String> set = new HashSet<String>();
HashMap<String, Integer> map = new HashMap<String, Integer>();
try {
fr = new FileReader("d://test.txt");
br = new BufferedReader(fr);
String n = "";
//readLine 如果到流末尾則會返回null
while ((n=br.readLine())!=null)
{
//封裝成類
String node[] =n.split("-");
Node node1 = new Node(node[0], Float.parseFloat(node[1]));
set.add(node[0]);
al.add(node1);
// System.out.println(node1.name);
}
//找出單筆最大花費的人
String maxName = "";
for (int i =1;i<al.size();i++)
{
Node node = al.get(i);
if(node.cost>al.get(i-1).cost)
{
maxName = node.name;
}
}
System.out.println("單筆花費最多的人是:"+maxName);
/* for(int i=0;i<al.size();i++)
{
System.out.println(al.get(i).name+" "+al.get(i).cost);
}*/
//遍歷set得到各個人的刷卡次數,儲存到map中
Iterator<String> iter = set.iterator();
while (iter.hasNext()) {
String name = (String) iter.next();
int count =0;
for(int i =0;i<al.size();i++)
{
if(al.get(i).name.equals(name))
{
count++;
}
}
map.put(name, count);
}
//遍歷map得到每個人的刷卡次數
Iterator iter2 = map.keySet().iterator();
while(iter2.hasNext())
{
String name2 =(String) iter2.next();
int count = map.get(name2);
System.out.println(name2+" 次數: "+count);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
//關閉檔案
finally{
try {
br.close();
fr.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
//資訊記錄類
class Node{
String name;
float cost;
public Node(String name ,float cost)
{
this.cost=cost;
this.name= name;
}
}
相關推薦
Java 筆試題的演算法題之io程式設計(一)
題目:刷卡記錄:名字-金錢 讀取並找出刷卡次數最多,單筆消費最多 程式碼:import java.io.BufferedReader; import java.io.FileReader; import java.util.ArrayList; import jav
java基礎之IO流(一)
目標 構造方法 play pub io流 ted ima str 有一個 java基礎之IO流(一)之字節流 IO流體系太大,涉及到的各種流對象,我覺得很有必要總結一下。 那什麽是IO流,IO代表Input、Output,而流就是原始數據源與目標媒介的數據傳輸的一種
Java基礎之IO操作(一)
Java基礎之IO操作(一) 一、FileInputStream 第一個程式,理解操作步驟 public static void main(String[] args) { //1、建立源 File src = new File("abc.txt"); //2、
linux學習筆記之shell程式設計(一)
shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則
linux學習筆記之shell程式設計(一)正則表示式與字元處理
shell程式設計 基礎正則表示式 正則和萬用字元的區別:正則是包含匹配,匹配檔案內容,grep,awk等支援正則表示式。萬用字元是完全匹配,匹配檔名,例如find,ls不認識正則表示式 ####正則表示式常用的字元(注意區別於萬用字元裡面的符號)#### -*
劍指offer演算法題分析與整理(一)
下面整理一下我在刷劍指offer時,自己做的和網上大神做的各種思路與答案,自己的程式碼是思路一,保證可以通過,網友的程式碼提供出處連結。 目錄 1、陣列中的逆序對 在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸
Java併發包原始碼學習之AQS框架(一)概述
AQS其實就是java.util.concurrent.locks.AbstractQueuedSynchronizer這個類。 閱讀Java的併發包原始碼你會發現這個類是整個java.util.concurrent的核心之一,也可以說是閱讀整個併發包原始碼的一個突破口。 比如讀ReentrantLock的
C語言之網路程式設計(一)域名解析
在網路程式設計時,知道域名是不能直接訪問一個主機的,需要轉換成相應的IP地址。有時在程式中需要將一個IP地址轉換成一個域名。本節將講解C程式中的IP地址與域名的轉換問題。 提示:在TCP/IP網路中,通訊雙方的主機必須知道彼此的IP地址方可進行正常的通訊,如果給出的主機的域
Java面試題整理--資料庫MySQL(一)
1)關係型和非關係型資料庫的區別?關係型資料庫:是指採用了關係模型來組織資料的資料庫。可以理解成二維的excel表格,是一一對應關係。常見的關係型資料庫有:MySQL、Oracle、DB2、Microsoft SQL Server、Microsoft Access等;非關係型
java之IO整理(中)
getparent create olt highlight print enc buffered byte package 一:打印流/*System.out.println()重定向輸出*/ /*public static void main(String[] ar
Java基礎之IO操作(二)
Java基礎之IO操作(二) 一、BufferedInputStream public static void main(String[] args) { File src = new File("abc.txt"); //2、選擇流 InputStream is =null;
Java高併發程式設計之synchronized關鍵字(一)
首先看一段簡單的程式碼: public class T001 { private int count = 0; private Object o = new Object(); public void m() { //任何執行緒要執行下面這段程式碼
java筆記IO流(一)之位元組流
1.概念 * IO流用來處理裝置之間的資料傳輸 * Java對資料的操作是通過流的方式 * Java用於操作流的類都在IO包中
黑馬程式設計師——Java IO流(一)之IO流概述、字元流、位元組流等
-----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ IO流 一、概述 1.IO流是用來處理裝置之間的資料傳輸。 2.Java對資料的操作時通過流的方式。 3.Java用於操作流的物件都在IO包中。
Java網路程式設計之Socket通訊(一)
最近在學習Java網路程式設計,之前聽說過,但是一直都沒有認真瞭解過。這幾天突然來了興致,覺得很神奇,忽然就想要了解下具體是什麼個情況。 Socket通常也稱作"套接字",用於描述IP地址和埠,是一個通訊鏈的控制代碼。在Internet上的主機
java之IO流(二)
IO:在裝置和裝置之間的一種資料傳輸! IO流的分類: 按流的方向分: 輸入流: 讀取檔案 (e:\\a.txt):從硬碟上檔案讀取出來後輸出這個檔案的內容 輸出流: 寫檔案:將e:\\a.txt 內容讀出來--->寫到f盤下 按資料的型別劃分: 位元組流
Java之HTTP網路程式設計(一):TCP/SSL網頁下載
目錄 一、簡介:HTTP程式設計 1、HTTP系統設計 2、HTTP客戶端工作過程 3、HTTP服務端工作過程 二、基於TCP Socket的HTTP網頁下載 三、基於SSL Socke
10.1-全棧Java筆記:最全面的IO技術(一)
javaIO技術對於任何程序設計語言而言,輸入輸出(Input/Output)系統都是非常核心的功能。程序運行需要數據,數據的獲取往往需要跟外部系統進行通信,外部系統可能是文件、數據庫、其他程序、網絡、IO設備等等。外部系統比較復雜多變,那麽我們有必要通過某種手段進行抽象、屏蔽外部的差異,從而實現更加便捷的編
Java之集合初探(一)
lin 數據改變 排序。 方法 規則 找不到 集合 回收 for循環 一、集合概述、區別 集合是一種容器,數組也是一種容器 在Java編程中,裝各種各樣的對象(引用類型)的叫做容器。 為什麽出現集合類? 面向對象語言對事物的體現都是以對象的形式,所以為了方便對多個對象的操作
java之多態(一)
stat span print ive 匹配 anim 註釋 上轉型 exceptio 一、多態是繼封裝、繼承之後,面向對象的第三大特性。現實事物經常會體現出多種形態,如學生,學生是人的一種,則一個具體的同學張三既是學生也是人,即出現兩種形態。 Java作為面向對象的語言,