我有一个文本文件,其中包含字段和值,如“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