public void test(double sort[],Vector V)
{
Map map=new IdentityHashMap();
for(int k=0;k<sort.length;k++)
{
map.put(Double.toString(sort[k]),V.elementAt(k));
System.out.println(V.elementAt(k)+
" "+sort[k]);
}
Arrays.sort(sort);
System.out.println("排序后");
for(int k=0;k<sort.length;k++)
{
System.out.println(map.get(Double.toString(sort[k]))+
" "+sort[k]);
}
}
public static void main(String[] args)
{
Sort sort=new Sort();
double A[]={1111,34,123,34,123,34};
Vector V=new Vector();
V.addElement("测试1");
V.addElement("测试2");
V.addElement("测试3");
V.addElement("测试4");
V.addElement("测试5");
V.addElement("测试6");
sort.test(A,V);
}在进行map.get(Double.toString(sort[k]的输出时,为什么返回的为null,请教了??好像map的put方法中赋予A数组的值为null,不知道为什么???
{
Map map=new IdentityHashMap();
for(int k=0;k<sort.length;k++)
{
map.put(Double.toString(sort[k]),V.elementAt(k));
System.out.println(V.elementAt(k)+
" "+sort[k]);
}
Arrays.sort(sort);
System.out.println("排序后");
for(int k=0;k<sort.length;k++)
{
System.out.println(map.get(Double.toString(sort[k]))+
" "+sort[k]);
}
}
public static void main(String[] args)
{
Sort sort=new Sort();
double A[]={1111,34,123,34,123,34};
Vector V=new Vector();
V.addElement("测试1");
V.addElement("测试2");
V.addElement("测试3");
V.addElement("测试4");
V.addElement("测试5");
V.addElement("测试6");
sort.test(A,V);
}在进行map.get(Double.toString(sort[k]的输出时,为什么返回的为null,请教了??好像map的put方法中赋予A数组的值为null,不知道为什么???
解决方案 »
- PreparedStatement.executeBatch()效率低的问题
- 菜鸟学java,帮忙做三道题
- reflect 与 overload
- EOFException异常问题----java读写游戏中的地图
- 高手帮忙解决一下关于事件监听的问题!
- 不要编写返回引用可变对象的访问器方法--------------------要怎么理解呢
- java中互斥锁的问题: 当几个参数对象的所有属性值相同时就上互斥锁
- 这个语句如何写??在线!!!!!!!!!!
- java是不是没有普通函数?
- Unsupported major.minor version 52.0
- 如何将字符串转换成字符串数组?
- 判断一个string是否等于几个String
此类利用哈希表实现 Map 接口,比较键(和值)时使用引用相等性代替对象相等性。换句话说,在 IdentityHashMap 中,当且仅当 (k1==k2) 时,才认为两个键 k1 和 k2 相等(在正常 Map 实现(如 HashMap)中,当且仅当满足下列条件时才认为两个键 k1 和 k2 相等:(k1==null ? k2==null : e1.equals(e2)))。 正是因为上面的原因(当且仅当 (k1==k2) 时,才认为两个键 k1 和 k2 相等),所以在你get
的时候引用并不相等,即map.put(Double.toString(sort[k]),V.elementAt(k));和
map.get(Double.toString(sort[k]))中的Double.toString(sort[k])并不是同一个
引用,所以得到的是空值。换成HashMap就可以了。
此类不是 通用 Map 实现!此类实现 Map 接口时,它有意违反 Map 的常规协定,该协定在比较对象时强制使用 equals 方法。此类设计仅用于其中需要引用相等性语义的罕见情况。
map.get(Double.toString(sort[k]))中的Double.toString(sort[k])并不是同一个
引用,所以得到的是空值。什么意思??并不是同一个引用???