Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 要使用键(字符串)和值(节点)创建哈希映射_Java - Fatal编程技术网

Java 要使用键(字符串)和值(节点)创建哈希映射

Java 要使用键(字符串)和值(节点)创建哈希映射,java,Java,我想创建一个hashmap,该hashmap将作为“键”,节点作为“值”。我可以知道如何使用hashmap实现这一点吗?我将在类似的模式上创建两个hashmap,稍后将基于“Keysrv_”字段对其进行比较。让我知道如何初始化所需数据并将其存储到hashmap中 输入xml如下所示 <?xml version="1.0" encoding="UTF-8"?> <menu-details> <menu name="HCOTA">

我想创建一个hashmap,该hashmap将作为“键”,节点作为“值”。我可以知道如何使用hashmap实现这一点吗?我将在类似的模式上创建两个hashmap,稍后将基于“Keysrv_”字段对其进行比较。让我知道如何初始化所需数据并将其存储到hashmap中

输入xml如下所示

 <?xml version="1.0" encoding="UTF-8"?>
    <menu-details>
        <menu name="HCOTA">
            <group name="cota" type="M">
                <page-details>
                    <page>
                        <name>cotacrit</name>
                        <field>
                            <field-type></field-type>
                            <srv-field>taChrgOffMsg.taChrgOffCrit.funcCode</srv-field>
                            <ui-field>funcCode</ui-field>
                            <label>FLT000204</label>
                            <mandatory>Y</mandatory>
                            <custom-pattern type=""></custom-pattern>
                                                    </field>
                        <field >
                            <field-type></field-type>
                            <srv-field>taChrgOffMsg.taChrgOffCrit.Acct.foracid</srv-field>
                            <ui-field>acctId</ui-field>
                            <label>FLT000265</label>
                            <mandatory>Y</mandatory>
                            <custom-pattern type=""></custom-pattern>
                                                    </field>
                        <field>
                            <srv-field>taChrgOffMsg.taChrgOffCrit.chargeOffType</srv-field>
                            <ui-field>chargeOffMode</ui-field>
                            <label>FLT004530</label>
                            <mandatory>Y</mandatory>

                        </field>

                    </page>
                </page-details>
            </group>
        </menu>
    </menu-details>
Java对象:

package com.ui.mig.menuvo;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;



@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "menu"
})
@XmlRootElement(name = "menu-details")
public class MenuDetails {

    protected List<MenuDetails.Menu> menu;

    public List<MenuDetails.Menu> getMenu() {
        if (menu == null) {
            menu = new ArrayList<MenuDetails.Menu>();
        }
        return this.menu;
    }


    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "group"
    })
    public static class Menu {

        protected List<MenuDetails.Menu.Group> group;
        @XmlAttribute(name = "name", namespace = "http://www..com/migration/")
        protected String name;

        public List<MenuDetails.Menu.Group> getGroup() {
            if (group == null) {
                group = new ArrayList<MenuDetails.Menu.Group>();
            }
            return this.group;
        }

        public String getName() {
            return name;
        }

        public void setName(String value) {
            this.name = value;
        }


        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {
            "pageDetails"
        })
        public static class Group {

            @XmlElement(name = "page-details", required = true)
            protected MenuDetails.Menu.Group.PageDetails pageDetails;
            @XmlAttribute(name = "name", namespace = "http://www..com/migration/")
            protected String name;
            @XmlAttribute(name = "type", namespace = "http://www./migration/")
            protected String type;

            public MenuDetails.Menu.Group.PageDetails getPageDetails() {
                return pageDetails;
            }

            public void setPageDetails(MenuDetails.Menu.Group.PageDetails value) {
                this.pageDetails = value;
            }

            public String getName() {
                return name;
            }

            public void setName(String value) {
                this.name = value;
            }

            public String getType() {
                return type;
            }

            public void setType(String value) {
                this.type = value;
            }


            @XmlAccessorType(XmlAccessType.FIELD)
            @XmlType(name = "", propOrder = {
                "page"
            })
            public static class PageDetails {

                protected List<MenuDetails.Menu.Group.PageDetails.Page> page;

                public List<MenuDetails.Menu.Group.PageDetails.Page> getPage() {
                    if (page == null) {
                        page = new ArrayList<MenuDetails.Menu.Group.PageDetails.Page>();
                    }
                    return this.page;
                }

                @XmlAccessorType(XmlAccessType.FIELD)
                @XmlType(name = "", propOrder = {
                    "pageName",
                    "field"
                })
                public static class Page {

                    @XmlElement(name = "page-name", required = true)
                    protected String pageName;
                    protected List<MenuDetails.Menu.Group.PageDetails.Page.Field> field;

                    public String getPageName() {
                        return pageName;
                    }
                    public void setPageName(String value) {
                        this.pageName = value;
                    }
                    public List<MenuDetails.Menu.Group.PageDetails.Page.Field> getField() {
                        if (field == null) {
                            field = new ArrayList<MenuDetails.Menu.Group.PageDetails.Page.Field>();
                        }
                        return this.field;
                    }


                    @XmlAccessorType(XmlAccessType.FIELD)
                    @XmlType(name = "", propOrder = {
                        "fieldType",
                        "srvField",
                        "uiField",
                        "label",
                        "mandatory",
                        "customPattern"
                    })
                    public static class Field {

                        @XmlElement(name = "field-type", required = true)
                        protected String fieldType;
                        @XmlElement(name = "srv-field", required = true)
                        protected String srvField;
                        @XmlElement(name = "ui-field", required = true)
                        protected String uiField;
                        @XmlElement(required = true)
                        protected String label;
                        @XmlElement(required = true)
                        protected String mandatory;
                        @XmlElement(name = "custom-pattern", required = true)
                        protected MenuDetails.Menu.Group.PageDetails.Page.Field.CustomPattern customPattern;

                        public String getFieldType() {
                            return fieldType;
                        }

                        public void setFieldType(String value) {
                            this.fieldType = value;
                        }

                        public String getSrvField() {
                            return srvField;
                        }

                        public void setSrvField(String value) {
                            this.srvField = value;
                        }

                        public String getUiField() {
                            return uiField;
                        }
                        public void setUiField(String value) {
                            this.uiField = value;
                        }

                        public String getLabel() {
                            return label;
                        }

                        public void setLabel(String value) {
                            this.label = value;
                        }
                        public String getMandatory() {
                            return mandatory;
                        }
                        public void setMandatory(String value) {
                            this.mandatory = value;
                        }

                        public MenuDetails.Menu.Group.PageDetails.Page.Field.CustomPattern getCustomPattern() {
                            return customPattern;
                        }
                        public void setCustomPattern(MenuDetails.Menu.Group.PageDetails.Page.Field.CustomPattern value) {
                            this.customPattern = value;
                        }

                        @XmlAccessorType(XmlAccessType.FIELD)
                        @XmlType(name = "", propOrder = {
                            "value"
                        })
                        public static class CustomPattern {

                            @XmlValue
                            protected String value;
                            @XmlAttribute(name = "type", namespace = "http://www.com/migration/")
                            protected String type;

                            public String getValue() {
                                return value;
                            }

                            public void setValue(String value) {
                                this.value = value;
                            }

                            public String getType() {
                                return type;
                            }

                            public void setType(String value) {
                                this.type = value;
                            }

                        }

                    }

                }

            }

        }

    }

}
您可以通过从两个映射中获取节点并将其与.equals进行比较来比较值


还有其他映射方法,详见。

Key=srv\u field ValueMultiple=tag下的所有属性无需覆盖节点中的hashCode。顺便说一句,您可以使用菱形运算符创建新的HashMap;感谢您提供的解决方案,我能够将“字符串”和“节点”添加到hashmap中。我有两个相同结构的hashmap。希望比较基于“KeyString”的hashmaps,并分别获得节点属性。
Map<String,Node> map = new HashMap<String,Node>();
//                  or new HashMap<>();
map.put("asdf", new Node());
Node n = map.get("asdf");