我想知道一张linkedhashmap的名字,但只知道最后一张。
这是我的hashmap,我只打印出姓氏。我如何得到第一个?有没有办法把它链接到密钥上。例如,“gumt”打印出Gumtäktsuni.bibliotek?
LinkedHashMap<String,Node> nodes = new LinkedHashMap<>();
nodes.put("gumt", new Node("Gumtäkts uni.bibliotek ", 60.2039, 24.9638));
nodes.put("lill", new Node("Lillhoplax bibliotek ", 60.2008, 24.8954));
nodes.put("bush", new Node("Busholmens bibliotek ", 60.1593, 24.9207));
for (String key : nodes.keySet()) {
nodes.get(key).setKey(key);
System.out.println("[" + key + "]" + " " + nodes.get(key).getName());
}
return nodes;
输出:
[gumt] Busholmens bibliotek
[lill] Busholmens bibliotek
[bush] Busholmens bibliotek
我也有一个生效的节点类。节点类:
import java.util.ArrayList;
public class Node{
private static String name;
private static String key;
private double latitude;
private double longitude;
private static ArrayList<Node> neighbours;
public Node(String name, double latitude, double longitude) {
this.name = name;
this.key = key;
this.latitude = latitude;
this.longitude = longitude;
this.neighbours = neighbours;
}
public static String getName() {
return name;
}
public static String getKey(){
return key;
}
public void setName(String name){
this.name = name;
}
public void setKey(String name){
this.key = key;
}
public void addNeighbour(Node neighbour){
this.neighbours = neighbours;
}
public static ArrayList<Node> getNeighbours(){
return neighbours;
}
}
System.out.println("[" + key + "]" + " " + nodes.get(key).getName())
在这一行中,您试图打印与键链接的值。但是,类节点
中的getName()
函数只返回节点
的name属性,在您的情况下,该属性总是相同的,因为在类节点
中,字段名称
被定义为静态的
可以创建第二个关联映射来跟踪插入的元素的顺序。
public class TestFirst {
public static void main(String[] args)
{
Main m = new TestFirst().new Main();
System.out.println(m.nodes.get(m.map.get(1)));
System.out.println(m.nodes.get(m.map.get(3)));
}
class Main
{
int counter=0;
LinkedHashMap<String,Node> nodes = new LinkedHashMap<>();
Map <Integer, String> map = new HashMap<>();
Main()
{
nodes.put("gumt", new Node("Gumtäkts uni.bibliotek ", 60.2039, 24.9638));
map.put(incCounter(), "gumt");
nodes.put("lill", new Node("Lillhoplax bibliotek ", 60.2008, 24.8954));
map.put(incCounter(), "lill");
nodes.put("bush", new Node("Busholmens bibliotek ", 60.1593, 24.9207));
map.put(incCounter(),"bush");
}
public int incCounter()
{
return ++counter;
}
class Node
{
private String name;
private String key;
private double latitude;
private double longitude;
private ArrayList<Node> neighbours;
public Node(String name, double latitude, double longitude) {
this.name = name;
this.key = key;
this.latitude = latitude;
this.longitude = longitude;
this.neighbours = neighbours;
}
public String toString()
{
return name+"("+latitude+","+longitude+")";
}
public String getName() {
return name;
}
public String getKey(){
return key;
}
public void setName(String name){
this.name = name;
}
public void setKey(String name){
this.key = key;
}
public void addNeighbour(Node neighbour){
this.neighbours = neighbours;
}
public ArrayList<Node> getNeighbours(){
return neighbours;
}
}
}
}
输出:
Gumtäkts uni.bibliotek (60.2039,24.9638)
Busholmens bibliotek (60.1593,24.9207)
注意:也检查修饰符:静态
。
尝试使用entrySet()
而不是keySet()
:
for (Map.Entry<String, Node> entry : nodes.entrySet()) {
String key = entry.getKey();
Node node = entry.getValue();
System.out.println("[" + key + "] " + node.getName());
}
如何获取字符串的第一个字符? 第一个字符=“s”
问题内容: 假设我在php中有一个字符串,它会输出到这样的文本文件中: nÖ§9q1Fª£ 如何将其字节码而不是时髦的ascii字符保存到我的文本文件中? 问题答案: 使用ord函数 http://ca.php.net/ord 例如。
问题内容: 如何从Python列表中的第一个字符串中获取第一个字符? 看来我可以使用,但不会给我第一个字符。 问题答案: 你几乎是对的。最简单的方法是 但 也可以。 你想 结束 的第一个字符(字符零)后,未 启动 的第一个字符(字符零),这是以后有什么在你的问题的手段的代码。
问题内容: 我需要获取字符串中第一个字母的位置。 遵循一个基本示例。第一个字母是,所以我需要知道的位置,因为我可以使用。 我想用正则表达式得到第一个字母,而不是添加硬编码的字母()。 提前致谢。 问题答案: 如果我正确阅读了Java文档,则说明您正在寻找match对象的方法:
示例PRUNKR:https://plnkr.co/edit/NZwb3ol8CbZFtSc6Q9zm?p=preview 我知道RxJS(5.0 beta.4)有以下3种节流方法: ,和 我正在寻找的行为是默认情况下在上执行的行为: 理论上,这应该看起来像: 但是 如果在节流超时时发出,则从不给我最后一个值 我可以结合任何RxJS方法来实现所描述的行为吗?
问题内容: 我有 使用JavaScript,如何获得最后五个字符或最后一个字符? 问题答案: 不要使用。请使用此方法,因为它与跨浏览器兼容(请参阅IE)。