java hashmap与数组操作问题

publicclasstest1{staticFileaFile=newFile("Source");staticStringaString=null;publicsta... public class test1 {
static File aFile = new File("Source");
static String aString = null;
public static void main(String[] args) throws IOException {
BufferedReader aReader = new BufferedReader(new InputStreamReader(new FileInputStream("Source")));
while ((aString = aReader.readLine()) != null) {
String [] aArray = aString.split(":");
HashMap<String, Integer> aMap = new HashMap<String, Integer>();
for(int i=0;i<aArray.length/2;i++){
String key = aArray[2*i];

if(aMap.containsKey(key)){
aMap.put(key,aMap.get(key)+Integer.parseInt(aArray[2*i+1]));
}else{
aMap.put(key,Integer.parseInt(aArray[2*i+1]));
}
System.out.println(aMap.entrySet());

}

}
aReader.close();
}
}
source 文件类似于:
A:34
B:23
C:33
D:23
A:4
E:5
问题是为什么:这些相同的键能写进map中 aMap.containsKey(key)不被执行----------------请求大侠帮忙 ,小弟超级大菜鸟
展开
 我来答
wzjlovemjx
2011-06-30 · TA获得超过6528个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:775万
展开全部
public class test1 {
static File aFile = new File("Source");
static String aString = null;

public static void main(String[] args) throws IOException {
BufferedReader aReader = new BufferedReader(new InputStreamReader(
new FileInputStream("/home/eagle/Source")));
HashMap<String, Integer> aMap = new HashMap<String, Integer>();//写到这里就是初始化一次aMap的意思
while ((aString = aReader.readLine()) != null) {
String[] aArray = aString.split(":");

//containsKey(Object key)这个api的意思是如果此映射包含对于指定键的映射关系,则返回 true。
//在这里你只是初始化了个aMap 而它里面没有数据,当然 aMap.containsKey(key)返回的是false了,加入我加一条数据就能执行一次了,当然这里的问题主要是你的HashMap<String, Integer> aMap = new HashMap<String, Integer>();的问题,把这个在每次读文件是不要初始化了,只要初始化一次就可以
//aMap.put("A", 11);
for (int i = 0; i < aArray.length / 2; i++) {
String key = aArray[2 * i];
System.out.println(key);
if (aMap.containsKey(key)) {

aMap.put(key,
aMap.get(key) + Integer.parseInt(aArray[2 * i + 1]));
} else {
aMap.put(key, Integer.parseInt(aArray[2 * i + 1]));
}
System.out.println(aMap.entrySet());

}

}
aReader.close();
}
}
百度网友3debeae
2011-06-30 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:115万
展开全部
呵呵,关于java中map的用法,完全可以上baidu搜索,这样来得快多了
其实map是解决键/值就是key/value而存在的,其中key是不能重复的,如果有重复,不会报错,只是会覆盖前面相同key的值。 key是一个数 value随便一个Object就可以 可以是数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
跟不上风的速度
2011-06-30 · 超过17用户采纳过TA的回答
知道答主
回答量:128
采纳率:0%
帮助的人:44.6万
展开全部
map里面键不能相同
追问
真的写进去了 不信您试试  只不过是一行一行写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式