当前位置: 首页 > 面试题库 >

Map.Entry:如何使用?

颛孙炜
2023-03-14
问题内容

我正在创建一个计算器。我将按钮放入HashMap集合中,并且想将它们添加到扩展的类中时JPanel,我不知道如何从集合中获取按钮。因此,我在互联网上找到了我代码的最后两行,但是我不知道它们的含义。

这是我的代码:

import java.awt.Component;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import javax.swing.JButton;
import javax.swing.JPanel;


public class PanneauCalcul extends JPanel {

    private HashMap<String, JButton> listbouton = new HashMap<String, JButton>() ;

    public PanneauCalcul() {
        for(int i = 0; i < 10; i ++) {
            listbouton.put("num" + i, new JButton("" + i)) ;
        }

        listbouton.put("add", new JButton("+")) ;
        listbouton.put("soustract", new JButton("-")) ;
        listbouton.put("multiply", new JButton("x")) ;
        listbouton.put("divise", new JButton("/")) ;
        listbouton.put("equal", new JButton("=")) ;

        Set entrys = listbouton.entrySet() ;

        Iterator iter = entrys.iterator() ;

        while(iter.hasNext()) {
            Map.Entry me = (Map.Entry)iter.next();  //don't understand 
            this.add((Component) me.getValue()) ;   //don't understand
        }

        EcouteCalcul ecout = new EcouteCalcul(this) ;
    }
}

我不明白如何Map.Entry在不重新定义Map.Entry功能的情况下使用-这是一个接口。


问题答案:

Map.Entry是一个密钥,其值组合为一个类。这使您可以进行迭代,Map.entrySet()而不必进行迭代Map.keySet(),然后获取每个键的值。写下自己所拥有的更好的方法是:

for (Map.Entry<String, JButton> entry : listbouton.entrySet())
{
  String key = entry.getKey();
  JButton value = entry.getValue();

  this.add(value);
}

如果不清楚,请告诉我,我将修改答案。



 类似资料:
  • Map.Entry接口使您可以使用映射条目。 Map接口声明的entrySet( )方法返回包含映射条目的Set。 这些set元素中的每一个都是Map.Entry对象。 下表总结了此接口声明的方法 - Sr.No. 方法和描述 1 boolean equals(Object obj) 如果obj是Map.Entry,则返回true,其键和值等于调用对象的值。 2 Object getKey( )

  • 这是我得到的,我想按条目中的值降序排序。 如何用排序编写比较器。如果想在排序后执行以下操作 在得到列表并排序后,它对我有效。 但是有没有办法在条目内使用stream.sorted(“在这里使用相同的比较器逻辑”)。 Entry是一个数组列表,有一堆值。 所以我想对此进行反向排序,如下所示: 所以我得到的最终列表是按相反顺序排序的。 为混乱而哭泣。

  • 我正在将.NET RESTful服务器(没有UI)移植到Java8。看起来Tuple最好的等价物(我经常使用它)是map.entry。我看不出这有什么坏处,这只是这个类的一种奇怪的用法。

  • 如何使用

  • 将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄. from bs4 import BeautifulSoup soup = BeautifulSoup(open("index.html")) soup = BeautifulSoup("<html>data</html>") 首先,文档被转换成Unicode,并且HTML的实例

  • 基础运用 Redis::set('user:profile:' . $id, "Swoft"); $userDesc = Redis::get('user:profile:' . $id); 你可以通过 Redis:: 调用任何 Redis 命令。Swoft 使用魔术方法将命令传递给 Redis 服务端,因此只需传递 Redis 命令所需的参数即可。示例: Redis::set('name',