public class Test { /**
* @param args
*/
public static void main(String[] args) {
Map map=new HashMap();
map.put("key", "2");
String[] body =new String[10];
body[0]="1";
body[4]="3";
body[5]="4";
body[6]=(String)map.get("key");
map.put("key", "haha");
for(int i=0;i<body.length;i++){
String temp=body[i]==null? " ":body[i];
System.out.println("["+temp+"]");
}
}}
请问如何能让body[6]打印出的是haha
body[6]-->key--->2现在key---->haha。
map.put("key", "haha");改成:
map.put("key", "haha");
body[6]=(String)map.get("key");不就行了?? 改了值后,要重新赋值.
public static void main(String[] args) { Map map=new HashMap();
map.put("key", "haha");
String[] body =new String[10];
body[0]="1";
body[4]="3";
body[5]="4";
body[6]=(String)map.get("key");
// map.put("key", "haha");
for(int i=0;i<body.length;i++){
String temp=body[i]==null? " ":body[i];
System.out.println("["+temp+"]");
}
}
}
//主要是这个方法map.get("key")所放的位置只要前面有映射,则返回指定键在此标识哈希映射中所映射的值。否则就为null
//后面的这个方法map.put("key", "haha")如果没有这个方法map.get("key")反回所映射的值它就没有用。
2楼个方法也不符合我的要求。我的想法是body[6]=2,就是指向一块内存,存储的值是2.当我用其他方法把这块区域的值变化了,这时body[6]取出的值就应该是变化好的值。小弟愚钝,请大家帮忙啊!
要是必须用数组解决问题的话,下面我给出一个解决方法,或者楼主
自己根据需求自己进行设计:import java.util.HashMap;
import java.util.Map;class StringProxy{
String str = null;
public StringProxy() {
this(null);
}
public StringProxy(String str) {
this.str = str;
}
public void setStr(String str) {
this.str = str;
}
public String getStr() {
return str;
}
}public class Test { public static void main( String[] args ) {
Map<String,StringProxy> map = new HashMap<String, StringProxy>();
map.put("key", new StringProxy("2"));
StringProxy[] body =new StringProxy[10];
body[0]=new StringProxy("1");
body[4]=new StringProxy("3");
body[5]=new StringProxy("5");
body[6]=map.get("key");
map.get("key").setStr("haha");
for(int i=0;i<body.length;i++){
String temp=body[i]==null? "":body[i].getStr();
System.out.println("["+temp+"]");
} }
}
使用的时候对这个代理类来进行相应的set和get方法
你的意思就是给body[6]一个引用变量x存放它的地址,然后去改变x从而这个body[6]也得到改变是吧,
这是c的语句java根本就不支持啊!!
就是:
int a=1;
int &b=a;
b=2;
则a也相应的变为了2 。
不过这只能在c语言里面才能实现,在java里面是语法错误的!!!!
hao hao