Linda_Lindaaaa 2015-04-29 03:55 采纳率: 64.7%
浏览 2357
已采纳

关于java中Map添加数据的问题

我定义了Map revmap=new HashMap();
但是当我向revmap中添加数据时总提示错误。

revmap.put(num_vertices, p);
其中num_vertices是int型,p是Point2d型,错误提示让把num_vertices改为integer型是怎么回事?

补充内容:
其实我是看到了一个C++程序,需要把它该写为java程序,C++代码所用的数据结构如下:

 std::map<int, int> Map;
    std::map<int, Point2d> revmap;
    std::vector<std::vector<Point2d> > components;

还有

 typedef std::vector< std::set<int> > graph_t; 

其中Point2d是这样一个结构:

 struct Point2d {
    int x;
    int y;
    float SWT;
};

这几个我不知道用java怎么实现,就是我尝试用

Map<integer, integer> map=new HashMap<integer, integer>(); 

实现

  std::map<int, int> Map;

时,在map中put两个int时就会报错。
谁知道C++的这种类型对应Java中应该怎么实现?

  • 写回答

5条回答 默认 最新

  • tsinggao 2015-04-29 17:28
    关注

    JSP为:

     <%@ page contentType="text/html" language="java" errorPage="" pageEncoding="GBK"%>
    <%@ page import="tsinggao.Point2d"%>
    <%@ page import="java.util.HashMap" %>
    <%@ page import="java.util.Map" %>
    <%@ page import="java.util.Set" %>
    <%@ page import="java.util.Iterator" %>
    <html>  
        <head>
            <title>JSP中添加Map并显示
            </title>
        </head>
        <body>
            <%
                Map<Integer,Point2d> myMap = new HashMap<Integer,Point2d>();
                Point2d myPoint2d1 = new Point2d();
                Point2d myPoint2d2 = new Point2d();
                Point2d myPoint2d3 = new Point2d();
                myPoint2d1.setX(100);
                myPoint2d1.setY(100);
                myPoint2d1.setSWT(1000/10);
                myMap.put(1, myPoint2d1);           
                myPoint2d2.setX(200);
                myPoint2d2.setY(200);
                myPoint2d2.setSWT(2000/10);
                myMap.put(2, myPoint2d2);
                myPoint2d3.setX(300);
                myPoint2d3.setY(300);
                myPoint2d3.setSWT(3000/10);
                myMap.put(3, myPoint2d3);
                Set<Integer> mykeySet = myMap.keySet(); 
                int i=1;
                for (Iterator<Integer> iterator = mykeySet.iterator(); iterator.hasNext();) {  
                Integer myInteger = iterator.next();  
                Point2d resultPoint2d = myMap.get(myInteger);
    
            %>
                Map中,第<%=String.valueOf(i) %>个元素的Key为:<%=String.valueOf(myInteger) %><br>
                &nbsp;&nbsp;&nbsp;&nbsp;第<%=String.valueOf(i) %>个元素的Value为:
                x=<%=String.valueOf(resultPoint2d.getX()) %>;
                y=<%=String.valueOf(resultPoint2d.getY()) %>;
                float=<%=String.valueOf(resultPoint2d.getSWT()) %><br><br>
            <%  
                i++;    
            }  
            %>
    
            <%%>
        </body>
    </html>
    
    

    Point2d 类文件为:tsinggao.Point2d.java

     package tsinggao;
    
    public class Point2d {
        int x;
        int y;
        float SWT;
        public int getX() {
            return x;
        }
        public void setX(int x) {
            this.x = x;
        }
        public int getY() {
            return y;
        }
        public void setY(int y) {
            this.y = y;
        }
        public float getSWT() {
            return SWT;
        }
        public void setSWT(float swt) {
            SWT = swt;
        }
    
    
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器