ファイル、HashMap、およびArrayListを使用することについては、すべて学校の割り当てがあります。この割り当てには4つのクラスが必要です。HashMapを作成して値を設定する<Integer、ArrayList <object>>
最初のクラスはFileReaderと呼ばれ、行単位で書き込まれ、必要な各フィールドは ";"で区切られたtxtファイルを読み込みます(例: "Columbia University"; "USA"; 78.86; 2012) 。各行には2つの文字列(大学名と国名)と2つの数字(スコアと年)が含まれています。 txtファイルを読み取った後のFileReaderクラスは、その内容をarraylistに返します。
割り当ての2番目のクラスはUniversityScoresと呼ばれ、4つのフィールド(uniname、country、score、year)、コンストラクタ、すべてのフィールドのアクセサメソッド、およびtoStringメソッドがあります。
3番目のクラスは、私たちのプログラムの中心です。このクラスは、FileEditorと呼ばれ、ハッシュマップを作成します。< Integer、ArrayList <UniversityScores> >ここで、キーは年の各オブジェクトのフィールドです。値は残りの行です。私の問題は、HashMapの正しい方法を満たすことです。
また、私の最後の4番目のクラスはFileWriterと呼ばれ、新しいtxtを作成し、その内部に書き込みます。私のすべてのクラスは、私のFileEditorクラス以外のものとして動作します。必要なヘルプ。前もって感謝します!
編集 私は他の方法も書いています。今のところ私の問題はFileEditorクラスです。 main関数を含むTestFilesクラスも投稿しました。
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
class FileReader{
private String fileName;
private Scanner scanner;
private File file;
private ArrayList<String> arrayList;
private String line;
public FileReader(String otherFileName){
this.fileName = otherFileName;
this.file = new File(fileName);
}
public boolean initReader(){
try {
scanner = new Scanner(file);
}
catch (FileNotFoundException e) {
System.out.println("Just caught a FileNotFoundException.");
}
if(file.exists()){
return true;
}
else{
return false;
}
}
public ArrayList<String> readFile(){
this.arrayList = new ArrayList<String>();
while (scanner.hasNextLine()) {
this.line = scanner.nextLine();
arrayList.add(line);
}
arrayList.remove(0);
//System.out.println(arrayList);
return arrayList;
}
public void closeReader(){
scanner.close();
System.out.println("Scanner closed");
}
}
import java.util.ArrayList;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
class FileWriter{
private String path;
private PrintWriter writer;
private File outputFile;
public FileWriter(String otherPath){
this.path = otherPath;
this.outputFile = new File(path);
}
public boolean initWriter(){
try{
writer = new PrintWriter(path);
}
catch (FileNotFoundException e){
System.out.println("just caught an exception");
}
if(outputFile.exists()){
return true;
}
else{
return false;
}
}
public void writeFile(){
writer.println("The first line");
writer.println("The second line");
writer.println("Christos");
}
public void closeWriter(){
writer.close();
System.out.println("Writer closed");
}
}
class UniversityScore{
private String name;
private String country;
private double score;
private int year;
public UniversityScore(String otherName, String otherCountry, double otherScore, int otherYear){
this.name = otherName;
this.country = otherCountry;
this.score = otherScore;
this.year = otherYear;
}
public String getName(){
return name;
}
public String getCountry(){
return country;
}
public double getScore(){
return score;
}
public int getYear(){
return year;
}
public String toString(){
String outputString = name + "\t" + country + "\t" + score + "\t" + year;
return outputString;
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
class FileEditor{
private HashMap<Integer, ArrayList<UniversityScore>> scores = new HashMap<Integer, ArrayList<UniversityScore>>();
private ArrayList<String> lines;
public FileEditor(ArrayList<String> otherLines){
this.lines = otherLines;
}
public void fillHashMap(){
// that's where I need help
}
}
public class TestFiles {
public static void main(String[] args){
FileReader reader = new FileReader("universities.txt");
if(reader.initReader()){
FileEditor editor = new FileEditor(reader.readFile());
reader.closeReader();
editor.fillHashMap();
FileWriter writer = new FileWriter("universities_2015_output.txt");
if(writer.initWriter()){
writer.writeFile(editor.getScoresOfYear(2015));
writer.closeWriter();
}
else{
System.out.println("Error creating file");
}
System.out.println("Average university score of year 2015: "+editor.getAverageOfYear(2015));
System.out.println("Min university score of year 2015: "+editor.getMinOfYear(2015));
System.out.println("Max university score of year 2015: "+editor.getMaxOfYear(2015));
}
else{
System.out.println("Error opening file");
}
}
あなたの_specific_プログラミングに関する質問は何ですか? – csmckelvey
私は、どのように正しいキーと値でハッシュマップを塗りつぶすのか分かりません。 – hristoforidisc
FileEditorクラスは表示されません。あなたはすでに何が働いていないのですか? – geneSummons