如下是csdn网友的一段代码package exc;import java.util.*;
public class file {
public static void main(String args[]){
Map map = new HashMap();
User u1=new User();
u1.setAddress("双和园");u1.setMoney(20);
User u2=new User();
u2.setAddress("双和园");u2.setMoney(30);
User u3=new User();
u3.setAddress("双和园");u3.setMoney(50);
User u4=new User();
u4.setAddress("南方花园");u4.setMoney(40);
User u5=new User();
u5.setAddress("南方花园");u5.setMoney(20);
User u6=new User();
u6.setAddress("百度空间");u6.setMoney(90);
List <User> userlist=new ArrayList<User>();
userlist.add(u1);
userlist.add(u4);
userlist.add(u3);
userlist.add(u2);
userlist.add(u5);
userlist.add(u6);
for(User user:userlist) {
Double freq =(Double)map.get(user.getAddress());//user.getAddress()是引用吗?还是user.getAddress()的值由于是string引用的原因?
map.put(user.getAddress(),(freq==null?user.getMoney():freq+user.getMoney()));//freq+user.getMoney()是引用吗?不是吧?
}
System.out.println(map);
}
}class User {
private String name;
private double money;
private String address; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return this.getAddress()+"------"+this.getMoney();
}
} 上面map函数中按道理传入的是引用吧,可是上面代码中好像不是吧?
另外:
在java编程思想(第三版)中关于统计0-20随机数的分布情况的程序中,
Integer r=new Integer(rand.nextInt(20));
if(hm.containKey(r))//上面的r不是通过new产生的引用吗,它应该不可能会有相同的key才对啊!这个if应该一直是false
((Counter)hm.get(r)).i++;
else
hm.put(r,new Counter());
public class file {
public static void main(String args[]){
Map map = new HashMap();
User u1=new User();
u1.setAddress("双和园");u1.setMoney(20);
User u2=new User();
u2.setAddress("双和园");u2.setMoney(30);
User u3=new User();
u3.setAddress("双和园");u3.setMoney(50);
User u4=new User();
u4.setAddress("南方花园");u4.setMoney(40);
User u5=new User();
u5.setAddress("南方花园");u5.setMoney(20);
User u6=new User();
u6.setAddress("百度空间");u6.setMoney(90);
List <User> userlist=new ArrayList<User>();
userlist.add(u1);
userlist.add(u4);
userlist.add(u3);
userlist.add(u2);
userlist.add(u5);
userlist.add(u6);
for(User user:userlist) {
Double freq =(Double)map.get(user.getAddress());//user.getAddress()是引用吗?还是user.getAddress()的值由于是string引用的原因?
map.put(user.getAddress(),(freq==null?user.getMoney():freq+user.getMoney()));//freq+user.getMoney()是引用吗?不是吧?
}
System.out.println(map);
}
}class User {
private String name;
private double money;
private String address; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String toString() {
return this.getAddress()+"------"+this.getMoney();
}
} 上面map函数中按道理传入的是引用吧,可是上面代码中好像不是吧?
另外:
在java编程思想(第三版)中关于统计0-20随机数的分布情况的程序中,
Integer r=new Integer(rand.nextInt(20));
if(hm.containKey(r))//上面的r不是通过new产生的引用吗,它应该不可能会有相同的key才对啊!这个if应该一直是false
((Counter)hm.get(r)).i++;
else
hm.put(r,new Counter());
解决方案 »
- Exception in thread "main" java.lang.NoClassDefFoundError:
- 请教高手一个io的问题
- ==请问谁有 Wise for Windows Installer 5.21 的使用方法或手册呀!!=======
- java中私有成员变量的访问的问题
- 求JBuilder8使用方法说明
- 可否用按钮调用SML文件,然后将运行的结果显示出来?
- 哪儿有bes5下载,在线等待。下载成功再送299分!!!
- 请问能否在运行时制定策略文件?
- 如何重绘组件?
- 写了个聊天程序,高手帮忙进来看看
- 关于JBuilder Design生成代码的疑问
- 关于printStackTrace的困惑///
建议看看书。
建议看看书。
Double freq =(Double)map.get(user.getAddress());//user.getAddress()是引用吗?还是user.getAddress()的值由于是string引用的原因?
map.put(user.getAddress(),(freq==null?user.getMoney():freq+user.getMoney()));//freq+user.getMoney()是引用吗?不是吧?
}
莫非传入map.get(key)和map.put(k,v)中的参数都是经过jdk1.5装包成String类型和Double类型?jdk1.5不是实现了基本类型的装包和拆包吗!
map.put(user.getAddress(),(freq==null?user.getMoney():freq+user.getMoney()));freq+user.getMoney()是引用吗?不是吧?难道是jdk自动装包了?
由于键值是String类型,所以不需要重写equals方法和hashcode方法了。?
The operator + is undefined for the argument type(s) Double, double
比如你写个方法
a(Object obj){}
然后你调用这个方法:
Object o=new Object();
a(o);
那传递过去的就是o的引用啊,在执行a方法的过程中,这个引用被赋值给a方法中的局部变量obj。