У меня есть два файла csv, имеющие 3 столбца. Я должен прочитать это и сравнить это, используя hashmap()
(несколько хэш-карт).У меня есть два CSV-файла с тремя столбцами, я должен прочитать это и сравнить это с помощью hashmap()
Колонны:
Name,Value, Address
aaa,1,sdasdasd
bbb,2,sadasdasd
ccc,3,dsadasds
Код:
public class CompareFile {
public static void main(String args[]) throws IOException {
//HashMap<String, String> File1 = new HashMap<String, String>();
String filepath1="D:\\XYZ\\File1.csv";
String filepath2="D:\\XYZ\\File2.csv";
HashMap<String, HashMap<String, String>> file1= new HashMap<String, HashMap<String, String>>();
HashMap<String, HashMap<String, String>> file2= new HashMap<String, HashMap<String, String>>();
CompareFile compareFile = new CompareFile();
file1=compareFile.readFileContents(filepath1);
file2=compareFile.readFileContents(filepath2);
//compareFile.CompareTwo(file1,file2);
}//
public HashMap<String, HashMap<String, String>> readFileContents(String file) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line=null;
String[] str=null;
HashMap<String, HashMap<String, String>> mapHashMap = new HashMap<String, HashMap<String, String>>();
while((line=bufferedReader.readLine())!=null)
{
str = line.split(",");
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put(str[1], str[2]);
mapHashMap.put(str[0], hashMap);
}
for (Map.Entry<String, HashMap<String, String>> entry : mapHashMap.entrySet())
{
System.out.println(entry.getKey() + " " + entry.getValue());
}return mapHashMap;
}
public void CompareTwo(HashMap<String, HashMap<String, String>> file1,HashMap<String, HashMap<String, String>> file2)throws IOException {
{
for(Map.Entry<String, HashMap<String, String>> entry1:file1.entrySet())
{
String key1=entry1.getKey();
HashMap<String, String> value1=entry1.getValue();
for(Map.Entry<String, HashMap<String, String>> entry2:file2.entrySet())
{
String key2=entry2.getKey();
HashMap<String, String> value2=entry2.getValue();
if(key1==key2)
{
System.out.println(key2 + "\t" + value1 + "\t" + value2);
}
}//
}//
}//
}//
Добро пожаловать в SO. Пожалуйста, прочитайте [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask). Ваш вопрос, поскольку он стоит сейчас, это просто «напишите свой код для меня», который на самом деле не является Добро пожаловать. Попробуйте что-нибудь и вернитесь с определенными проблемами, с которыми вы столкнулись. – lexicore
Я прочитал два csv, как в приведенном выше формате, и я хочу знать логику сравнения этих двух файлов, которые я положил в hashmap – UnfortuanteEngineerq
@UnfortuanteEngineerq Извините, маскировка «напишите код для меня» с «Я хочу знать логику», не делает его лучше. – lexicore