我有一個文本文件,其中包含字段和值,如「ID:987654類型:活動ITEM:新..」 。每行包含一個項目和不同的屬性。現在我想將這個文本文件與已經具有這些值的HashMap進行比較。什麼是最好的方式來比較它們。如何閱讀這個文本文件並與HashMap進行比較。任何幫助將不勝感激。比較HashMap與文本文件
非常感謝。
我有一個文本文件,其中包含字段和值,如「ID:987654類型:活動ITEM:新..」 。每行包含一個項目和不同的屬性。現在我想將這個文本文件與已經具有這些值的HashMap進行比較。什麼是最好的方式來比較它們。如何閱讀這個文本文件並與HashMap進行比較。任何幫助將不勝感激。比較HashMap與文本文件
非常感謝。
使用java.util.Properties類讀取文件。這將創建一個帶有Hashtable的屬性對象。然後,您可以遍歷HashMap中的鍵並與Hashtable進行比較。
這應該是算法的起點。你自己把剩下的肉全部放在一邊。
感謝Brett。我不確定在java中prpoerty是如何工作的,我會詳細講解它。但我有一個問題。這是否會在每行的HashTable中創建一個條目,我的意思是每個唯一的ID,它會在HashTable中創建一個條目。如果你可以幫我進一步處理這個問題 – NewJavaBee
Hashtable和HashMap非常相似。閱讀此文檔(http://download.oracle.com/javase/6/docs/api/java/util/Hashtable.html,http://download.oracle.com/javase/6/docs/api/的java/UTIL/HashMap.html)。另請閱讀有關屬性的文檔。 是的,如果鍵(ID,TYPE,ITEM,...)是唯一的(每行一個),那麼在文本文件的每行屬性哈希表中將會有一個條目。 –
我嘗試從Java的屬性,但它只加載道具中的第一項,我不打包獲得任何其他價值。有沒有其他的方式來遍歷它? – NewJavaBee
我會留給你閱讀文本文件(除非我失去了一些東西,像BufferedReader這樣的類應該適合你),但我會告訴你如何使用HashMap。有人已經提供了該文檔的鏈接。對於每個ID,你要這樣說
//do this for each ID you read - I'll suppose "id" is the ID and
//"text" is the text (properties) associated with the ID on each iteration
//of some kind of loop here
//search your HashMap for the id you just read
String value = map.get(id);
//if map doesn't contain ID
if (value == null)
{
//do whatever you need to do in this case
}
//if it does contain it
else
{
if (value.equals (text))
{
//the text file had the same thing as your existing HashMap
}
else
{
//had something else
}
}
加載文本文件到另一個HashMap中,使用任何語義是合適的,然後調用HashMap.equals()。
你的文件格式如何?這是每行一個項目嗎?此外,您是否有時在「ITEM:帶空格的新商品」等字段中有空格。最後,你如何格式化HashMap?關鍵是什麼,價值是什麼?它是ID作爲鍵和包含TYPE和ITEM作爲值的對象嗎?精心製作,以便我們可以更好地幫助你。 –
是adam,HashMap是這種格式。文本文件也有空格以及「:」分隔符。在文本文件中,每一行都是一個項目的詳細信息 –
NewJavaBee