質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

解決済

読み込みが遅いのかデータの書き方が問題なのかわかりません

Seeker
Seeker

総合スコア33

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2回答

0リアクション

0クリップ

443閲覧

投稿2022/07/10 02:57

使用環境
window 10Home
eclipse: 2022-03 

現在二つのクラスを用意して
一つはデータ関連のクラス
もう一つはデータを読み込むメインクラス
となっています。

データを読み込んだのですが・・・
エラーが出てないのにどういうわけか、全然何も表示されません。
プログラムの書き方に問題があるのでしょうか
データの使い方に問題があるのでしょうか、
それともデータ量が多すぎて読み込みが遅れているからなんでしょうか
あるいはそれ以外の何かでしょうか?
どうすればいいのでしょうか

・データを読み込むもの

DailyDate.java

package date; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; public class DailyDate extends CSVSet{ private static String File="DailyData.csv"; private static LocalDate OneDay; private static int PrefatureNumber; private static String Prefature; private static int TodayInfect; private static int SumInfect; private static int TodayDeath; private static int SumDeateh; private static double WeekHundredThousandInfect; public DailyDate(LocalDate oneDay, int prefatureNumber, String prefature, int todayInfect, int sumInfect, int todayDeath, int sumDeateh, double weekHundredThousandInfect) { OneDay = oneDay; PrefatureNumber = prefatureNumber; Prefature=prefature; TodayInfect = todayInfect; SumInfect = sumInfect; TodayDeath = todayDeath; SumDeateh = sumDeateh; WeekHundredThousandInfect = weekHundredThousandInfect; } private static ArrayList<ArrayList<String>> DailyDateSet (String File){ ArrayList<ArrayList<String>> DailyDateSet = new ArrayList<ArrayList <String>>(); DailyDateSet=CSVSet.Date(File); return DailyDateSet; } public static List<DailyDate> GetDailyDate(){ ArrayList<ArrayList<String>> PrefatureSet =DailyDateSet(File); List<DailyDate> GetDailyDate=new ArrayList<>(); for(int RowCount=1;RowCount<PrefatureSet.size();RowCount++) { GetDailyDate.add(new DailyDate(CallOneDay(RowCount),CallPrefatureNumber(RowCount),CallPrefature(RowCount),CallTodayInfect(RowCount),CallSumInfect(RowCount),CallTodayDeath(RowCount),CallSumDeateh(RowCount),CallWeekHundredThousandInfect(RowCount))); } return GetDailyDate; } private static LocalDate CallOneDay(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); DateTimeFormatter fmt=DateTimeFormatter.ofPattern("yyyy/MM/dd"); String Item=DailyDateSet.get(Index).get(0); LocalDate OneDay=LocalDate.parse(Item,fmt); return OneDay; } private static int CallPrefatureNumber(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); int PrefatureNumber=Integer.parseInt(DailyDateSet.get(Index).get(1)); return PrefatureNumber; } private static String CallPrefature(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); String Prefature=DailyDateSet.get(Index).get(2); return Prefature; } private static int CallTodayInfect(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); int TodayInfect=Integer.parseInt(DailyDateSet.get(Index).get(3)); return TodayInfect; } private static int CallSumInfect(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); int SumInfect=Integer.parseInt(DailyDateSet.get(Index).get(4)); return SumInfect; } private static int CallTodayDeath(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); int TodayDeath=Integer.parseInt(DailyDateSet.get(Index).get(5)); return TodayDeath; } private static int CallSumDeateh(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); int SumDeateh=Integer.parseInt(DailyDateSet.get(Index).get(6)); return SumDeateh; } private static double CallWeekHundredThousandInfect(int Index) { ArrayList<ArrayList<String>> DailyDateSet =DailyDateSet(File); double WeekHundredThousandInfect=Double.parseDouble(DailyDateSet.get(Index).get(7)); return WeekHundredThousandInfect; } public LocalDate getOneDay() { return OneDay; } public int getPrefatureNumber() { return PrefatureNumber; } public String getPrefature() { return Prefature; } public int getTodayInfect() { return TodayInfect; } public int getSumInfect() { return SumInfect; } public int getTodayDeath() { return TodayDeath; } public int getSumDeateh() { return SumDeateh; } public double getWeekHundredThousandInfect() { return WeekHundredThousandInfect; } public static void setOneDay(LocalDate oneDay) { OneDay = oneDay; } public void setPrefatureNumber(int prefatureNumber) { PrefatureNumber = prefatureNumber; } public void setPrefature(String prefature) { Prefature = prefature; } public void setTodayInfect(int todayInfect) { TodayInfect = todayInfect; } public void setSumInfect(int sumInfect) { SumInfect = sumInfect; } public void setTodayDeath(int todayDeath) { TodayDeath = todayDeath; } public void setSumDeateh(int sumDeateh) { SumDeateh = sumDeateh; } public void setWeekHundredThousandInfect(double weekHundredThousandInfect) { WeekHundredThousandInfect = weekHundredThousandInfect; } @Override public String toString() { return "DailyDate [PrefatureNumber=" + PrefatureNumber + ", Prefature=" + Prefature + ", TodayInfect=" + TodayInfect + ", SumInfect=" + SumInfect + ", TodayDeath=" + TodayDeath + ", SumDeateh=" + SumDeateh + ", WeekHundredThousandInfect=" + WeekHundredThousandInfect + "]"; } }

・データを読み込む元の継承前のもの

CSVSet.java

package date; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class CSVSet { protected static ArrayList<ArrayList<String>> Date (String file_name){ /////指定したファイルを文字リストのリスト型として読み込む ArrayList<String[]> Origindate =new ArrayList<String[]>(); ArrayList<ArrayList<String>> Date = new ArrayList<ArrayList <String>>(); BufferedReader br=null; try { File file=new File(file_name); br=new BufferedReader(new InputStreamReader(new FileInputStream(file),Charset.forName("MS932"))); String line; try { while((line=br.readLine()) != null) { Origindate.add(line.split(",")); } } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } for(int RowCount=0;RowCount<Origindate.size();RowCount++) { String[] cher=Origindate.get(RowCount); List<String> PreList=Arrays.asList(cher); ArrayList<String> NewList=new ArrayList<String>(PreList); Date.add(NewList); } } catch (FileNotFoundException e) { System.out.println("ファイルが見つかりません"); e.printStackTrace(); } return Date; } protected static int RefaranceColumnNumber (String TargetWard,ArrayList<ArrayList<String>> Date) {/////指定したワードをもとに参照先の数字を読み込む int RefaranceColumnNumber=0; while(Date.get(0).get(RefaranceColumnNumber).equals(TargetWard) || RefaranceColumnNumber==((CharSequence) Date.get(0)).length()) { RefaranceColumnNumber++; } if(RefaranceColumnNumber==((CharSequence) Date.get(0)).length()){ System.out.println("該当のコラム名はありません"); System.exit(0); } return RefaranceColumnNumber; } protected static ArrayList<String>SelectColumn(int RefaranceColumnNumber,ArrayList<ArrayList<String>> Origin){//////参照先の数字からコムボックスに渡す値をセットする ArrayList<String> PreSelectColumn=new ArrayList<String>(); for(int i=0;i<Origin.size();i++) { PreSelectColumn.add(Origin.get(i).get(RefaranceColumnNumber)); } Set<String> SetPreSelectColumn=new HashSet<String>(PreSelectColumn); ArrayList<String> SelectColumnSet=new ArrayList<String>(SetPreSelectColumn); return SelectColumnSet; } protected static ArrayList<String> FastColumn(ArrayList<ArrayList<String>> Origin){////一列目に記載されているコラム名からカムボックスに入れる要素をすべて取り出す ArrayList<String> FastColumn=new ArrayList<String>(); for(int i=0;i<Origin.get(0).size();i++) { FastColumn.add(Origin.get(0).get(i)); } return FastColumn; } }

Mainのもの

Main.java

package excit; import java.util.List; import java.util.stream.Collectors; import date.DailyDate; public class Main { public static void main(String[] args) { List<DailyDate> Daily=date.DailyDate.GetDailyDate(); System.out.println(Daily.get(0).getPrefature()); List<DailyDate> DailySetList=Daily.stream() .filter(SetPrefature ->"北海道".equals(SetPrefature.getPrefature())) .collect(Collectors.toList()); DailySetList.forEach(name->System.out.print(name)); } }

CSVファイル

DailyDat

日付 都道府県コード 都道府県名 各地の感染者数_1日ごとの発表数 各地の感染者数_累計 各地の死者数_1日ごとの発表数 各地の死者数_累計 各地の直近1週間の人口10万人あたりの感染者数 2020/01/16 1 北海道 0 0 0 0 0 2020/01/17 1 北海道 0 0 0 0 0 2020/01/18 1 北海道 0 0 0 0 0 2020/01/19 1 北海道 0 0 0 0 0 2020/01/20 1 北海道 0 0 0 0 0 2020/01/21 1 北海道 0 0 0 0 0 2020/01/22 1 北海道 0 0 0 0 0 2020/01/23 1 北海道 0 0 0 0 0 2020/01/24 1 北海道 0 0 0 0 0 2020/01/25 1 北海道 0 0 0 0 0 2020/01/26 1 北海道 0 0 0 0 0 2020/01/27 1 北海道 0 0 0 0 0 2020/01/28 1 北海道 1 1 0 0 0.02 2020/01/29 1 北海道 0 1 0 0 0.02 (以下略)

因みにこのデータの行数は4万1032行あります

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/07/14 08:47

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。