Map接口方面的疑惑_针对下面代码下面程序for循环中,当i=1时,(Integer) m.get(args[i])为什么会等于null?使得在下面三目运算中,取ONE的值?能否讲一下.
程序代码如下:********************************import java.util.*;
public class TestArgsWords {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
Integer freq = (Integer) m.get(args[i]);
m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
}
System.out.println(m.size() + " distinct words detected:");
System.out.println(m);
}
}****************************
程序代码如下:********************************import java.util.*;
public class TestArgsWords {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
Integer freq = (Integer) m.get(args[i]);
m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
}
System.out.println(m.size() + " distinct words detected:");
System.out.println(m);
}
}****************************
解决方案 »
- java se
- 为什么我的java在dos下程序运行时,老是显示error:can not read ave.java.ave是我自己写的程序名,环境变量我也设置对了呀,运行java -version一切正常
- 请教高手AWT的图片显示问题
- 网站估价~~~
- 急!急!!急!!!请教一个输入输出错误
- 做图形界面的时候一般都用哪个LayoutManager比较多啊?
- 300分跪求翁恺JAVA视频27-30讲。
- 有哪个知道多线程组的
- 请问为何我的JUnit Test出现了NullPointerException的错误呢
- jswdk是有什么作用?JRUN可以代替他吗?IIS和前两者的关系是什么?
- 引用,对象 的一个小问题。非常简单 但是我不明白。。。求指点
- 一个奇怪的线程锁定问题
Map接口方面的疑惑_针对下面代码
下面程序for循环中,当i=0时,,(Integer) m.get(args)为null,但当i=1时,(Integer) m.get(args)为什么也会等于null?使得在下面三目运算中,取ONE的值?
能否讲一下.程序代码如下:
********************************
import java.util.*;
public class TestArgsWords {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
Integer freq = (Integer) m.get(args);
m.put(args,(freq == null? ONE : new Integer(freq.intValue() + 1)));
}
System.out.println(m.size() + " distinct words detected:");
System.out.println(m);
}
}****************************假设在命令行这样运行:
java TestArgsWords aaa bbb ccc aaa ddd ccc ccc得到结果是:
4 distinct words detected:
{ aaa=2,ddd=1,ccc=3,bbb=1 }
public class TestArgsWords {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
Integer freq = (Integer) m.get(args);
m.put(args,(freq == null? ONE : new Integer(freq.intValue() + 1)));
}
System.out.println(m.size() + " distinct words detected:");
System.out.println(m);
}
}
不明白楼主问什么?
当i=1时没发现(Integer) m.get(args)为null;呀
我运行的结果如下输入:"A","B","C","A","B","C","A","B","C"
输出:
1 distinct words detected:
{[Ljava.lang.String;@6b97fd=9}
表示参数为String类型的数组
public class TestArgsWords {
private static final Integer ONE = new Integer(1);
public static void main(String args[]) {
Map m = new HashMap();
for (int i = 0; i < args.length; i++) {
Integer freq = (Integer) m.get(args[i]);
m.put(args[i],(freq == null? ONE : new Integer(freq.intValue() + 1)));
}
System.out.println(m.size() + " distinct words detected:");
System.out.println(m);
}
}
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<String,Integer>();
for(int i = 0 ;i<args.length; i++) {
Integer freq = map.get(args[i]);
if(freq == null) {
map.put(args[i],1);
}else {
map.put(args[i],freq+1);
}
}
System.out.println(map.size() + " distinct word detected");
System.out.println(map);
}
}这样应该是可以的...