Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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_Gwt - Fatal编程技术网

Java 有没有更快的;地图;?

Java 有没有更快的;地图;?,java,gwt,Java,Gwt,下面我有一个GWT代码,它有一些小问题: 设置了login和aboutme属性,或者只设置了contacts,这是行中的第一个属性。这可能是因为在for循环完成之前设置了contacts属性,导致contacts被分配为空值吗 public void copyFrom(User user) { Map<String,String> map = new HashMap<String,String>(); for (Contact contac

下面我有一个GWT代码,它有一些小问题:

设置了
login
aboutme
属性,或者只设置了
contacts
,这是行中的第一个属性。这可能是因为在for循环完成之前设置了
contacts
属性,导致
contacts
被分配为空值吗

public void copyFrom(User user) {
        Map<String,String> map = new HashMap<String,String>();
        for (Contact contact : user.getContacts()) {
            map.put(contact.getType(), contact.getValue());
        }
        super.set("lastlogin", user.getLastLogin());
        super.set("aboutme", user.getAboutMe());
        super.set("contacts", map);
    }
public void copyFrom(用户){
Map Map=newhashmap();
对于(联系人:user.getContacts()){
put(contact.getType(),contact.getValue());
}
set(“lastlogin”,user.getLastLogin());
set(“aboutme”,user.getAboutMe());
super.set(“联系人”,地图);
}

我是否需要使用“更快的”
Map

如果您在Map上调用
get
,则返回一个不存在的键
null
,这是正确的。您的代码是按顺序执行的,因此您可以确保在访问
映射时for循环已完成

如果您在映射上调用
get
,以获取不存在的密钥,则返回
null
,这是正确的。您的代码是按顺序执行的,因此您可以确保在访问
映射时for循环已完成

for循环和向
映射添加值都不是异步操作,因此整个循环在调用
super.set(…)
之前执行。在本例中,
map
不能为
null
,因为您在声明时实例化了它。它可能最终不被填充(例如,如果
user.getContacts()
中没有元素),但不能为null


您的问题在于通过本例中的
super
实现
set(…)

for循环和向
Map
添加值都不是异步操作,因此整个循环在调用
super.set(…)
之前执行。在本例中,
map
不能为
null
,因为您在声明时实例化了它。它可能最终不被填充(例如,如果
user.getContacts()
中没有元素),但不能为null


您的问题在于通过本例中的
super
实现
set(…)

实际上这是一个简单的java问题,与GWT无关。在本例中
super
是什么?也许问题就在那里。您正在循环浏览联系人列表,将其放入地图中,然后使用填充的地图设置属性。没有理由表现得奇怪。地图不是问题。事实上,这是一个GWT问题,因为GWT被编译成javascript——问题的一部分,OP想知道是否有一个编译成javascript时运行更快的实现。实际上,这是一个简单的java问题,与GWT无关。在这种情况下,
super
是什么?也许问题就在那里。您正在循环浏览联系人列表,将其放入地图中,然后使用填充的地图设置属性。没有理由表现得奇怪。映射不是问题所在。实际上,这是一个GWT问题,因为GWT被编译成javascript——问题的一部分是,OP想知道是否有一个实现在编译成javascript时运行得更快。我如何知道循环何时完成?你的意思是我需要挂上国旗吗?我用GWT标记了它,因为我不确定问题是否出在实际代码被编译成javascript这一事实上。我如何知道循环何时完成?你的意思是我需要挂上国旗吗?我用GWT标记了它,因为我不确定问题是否出在实际代码被编译成javascript的事实上。