だから私はこのようなファイルを持っています:
1st 2nd nth
e1, v1, 1
e1, v3, 2
e1, v4, 4
e1, v5, 7
e2, v1, 1
., ., .
., ., .
., ., .
ここで、最初の列をハッシュマップ(e1、e2、またはe3)のキーにし、値を「Ratings」と呼ばれるArrayListにし、2番目の列にその値(int)を持たせます。 arraylistのn番目のインデックス内。
これまでのところ、私のコード全体は次のとおりです。
import java.util.*;
import java.io.*;
public class Setup
{
public static void Setup(String[] args)
{
String user;
int value, location;
//Create a Hashmap that holds a string key and an ArrayList value
HashMap<String, ArrayList<Integer>> userRatings = new HashMap<String, ArrayList<Integer>>();
try
{
BufferedReader bufferReader = new BufferedReader(new FileReader("Student list.txt")); //read from file
String line, sentence; //declare two string variables
String[] sData; //declare a string array (store the contents here)
line = bufferReader.readLine(); //Read the line
while (line != null) //While there is a line, do this:
{
line = bufferReader.readLine();
sData = line.split(", "); //Into the string array, enter individual values in the line split by the ", " characters
int iData[] = new int[sData.length]; //Create an int array the size of the string array
user = sData[0];
for (int i = 0; i <sData.length; i++) //fill the int array with the int-version of the string array
{
iData[i] = Integer.parseInt(sData[i]); //pass the strings as integers into the integer array
}
value = iData[1];
location = iData[2];
if(!userRatings.containsKey(user)) //The user does not have ratings.
{
ArrayList<Integer> ratings = new ArrayList<Integer>();
// ratings = userRatings.get(user);
for (int j = 0; j < 50; j++)
{
ratings.add(j);
}
System.out.println(user + " " + userRatings.get(user));
}
else //The user has ratings
{
userRatings.get(user).add(location,value);
System.out.println(user + " " + userRatings.get(user));
}
}
bufferReader.close();
} catch (FileNotFoundException e)
{
System.out.println("File does not exist or could not be found.");
}
catch (IOException e)
{
System.out.println("Can't read from file");
}
catch (NullPointerException e)
{
}
}
}
arraylistの内容の変更に問題があります。
要約すると、ファイルの最初の列のすべての文字列は、ハッシュマップ(userList)に独自のキーを持ちます。プログラムは、キーがあるかどうかを確認します。キーが存在しない場合は、の値として新しい配列リストを作成します。鍵。arrayListには50個のインデックスが設定され、そのうち「0」が含まれます。その後、arraylistには、2番目の列の整数がn番目の列の対応する値に追加されるファイルから新しい値が追加されます。
配列リストにデータを入力するにはどうすればよいですか。また、ユーザーe6のn番目のインデックスに新しい整数を追加したい場合に追加できるように編集するにはどうすればよいですか。