我正在创建一个计算器。我将按钮放入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',