我已经检查过像这样的其他问题,但似乎我并不总是创建一个新的迭代器来检查始终相同的对象。
这是代码
Iterator<Map.Entry<Node, Float>> it = graph.nodeNeighboursIterator(e);
System.out.println("extracted node "+ e.getLabel() + " number of neighbours "+ e.sizeNeighbours());
while(it.hasNext()) {
System.out.print(i + " " + e.getLabel() + " " + it +"-");
i++;
}
Run Code Online (Sandbox Code Playgroud)
该方法graph.nodeNeighboursIterator执行此操作
public Iterator<Map.Entry<Node, Float>> nodeNeighboursIterator(Node n) {
return this.graph_weighted.get(n).entrySet().iterator();
}
Run Code Online (Sandbox Code Playgroud)
打印System.out.println("extracted node "+ e.getLabel() + " number of neighbours "+ e.sizeNeighbours());出正确数量的邻居,但循环仍然没有结束他的循环,你对此有何看法?
public class MapKeyExample {
public static void main(String[] args){
//Initializing a Map of type HashMap
Map<Integer, String> map = new HashMap<>();
Set<Integer> s = new HashSet<>();
map.put(1, "One");
map.put(3, "Three");
map.put(5, "Five");
map.put(7, "Seven");
map.put(9, "Nine");
System.out.println(map);
s = map.keySet();
System.out.println(s);
}
}
Run Code Online (Sandbox Code Playgroud)
现在的输出是
{1=One, 3=Three, 5=Five, 7=Seven, 9=Nine}
[1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
的预期输出为:
[1, 5, 3, 9, 7]
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何将其修改为Linkedhashmap或treemap吗?非常感谢。
我正在将一个项目从 c# 迁移到 java,但 TryGetValue() 方法有问题!
这是 C# 代码:
private static void _AddBadQualityChar (Dictionary<string,List<string>> badQualityChars, string charString, string badQualityChar)
{
List<string> _badQualityChars;
if (!badQualityChars.TryGetValue (charString, out _badQualityChars))
{
_badQualityChars = new List<string> ();
badQualityChars [charString] = _badQualityChars;
}
_badQualityChars.Add (badQualityChar);
}
Run Code Online (Sandbox Code Playgroud)
我不知道 java 地图中 TryGetValue() 方法的等效项是什么,我所能找到的只是 get() 方法,它不返回 Boolean !我怎样才能用Java编写这个函数?
我正在使用hashmap,但它无法正常工作.我有一个Computing.java类,我有添加到hashmap的方法:
addIntoMap(String key, String value){
m_parameters_values.put(key, value);
}
Run Code Online (Sandbox Code Playgroud)
和从hashmap获取的方法:
public void getValueByKey(String key){
System.out.println("GET "+m_parameters_values.get(key));
}
Run Code Online (Sandbox Code Playgroud)
我从Main类调用theese方法,但我无法获取密钥,我仍然无效.你知道为什么吗?
类计算的内容(构造函数省略):
public void Parse (String args[]) throws Exception{
Parse(args,true);
}
public void Parse(String[] args, boolean throwErrorIfParamenterNotDefined) throws CmdLineException
{
int i = 0;
while (i < args.length)
{
// The current string is a parameter name
String key = args[i].substring(1, args[i].length() - 1).toLowerCase();
String value = "";
i++;
if (i < args.length)
{
if (args[i].length() > 0 && args[i] == "-")
{
// …Run Code Online (Sandbox Code Playgroud) 在Java中的HashMap中,我理解哈希值存储在存储桶中,这有助于加快搜索速度.
在检索时,它检查哈希码并相应地找到桶号.
如果存在1到10的桶号,则从哈希码中找到的桶号是桶号5
.
如何将控制转移到5号桶?它是通过桶1到桶4到达5还是使用任何其他机制?
您好我有与问题HashMap与Integer关键.
当我Integer用作地图的关键时,我得到的结果不一致 .
我读了几篇帖子,这些帖子表明,如果我使用的Integer是键入Hashmap,我需要确保覆盖hashcode了Integer类和类的方法.在Integer类中,方法equals()已被覆盖.现在我如何覆盖该equals()方法.
这是HashMap<Integer, String>用于存储值,并String与此值相关联.据我所知,当你把值String放入时HashMap,它将按值(因为这里的值是Integer)按升序排序.
现在,我想要做的是从rank1到rank4获取值,如果我不知道key的值,我该怎么做?
嘿伙计这是我的代码在循环中我把mapTable.get("NN").它给出了正确的值,但是在循环外的print语句中它给出了null.请帮助.
Map<String,String> mapTable=new HashMap<String,String>();
while((line2=br1.readLine())!=null)
{
if((!line2.trim().isEmpty())&&Character.isDigit(line2.charAt(0)))
{
String[] tmp=line2.split("\t");
mapTable.put(tmp[1].trim(),tmp[2].trim());
System.out.println("MAP-----"+tmp[1]+ " -> "+tmp[2]+" ex "+mapTable.get("NN"));
}
}
printMap(mapTable);
System.out.println("CHECKING-------> "+mapTable.get("NN"));
This is the output:
MAP-----NN -> n ex n
MAP-----NNS -> n ex n
MAP-----NNP -> n ex n
MAP-----NNPS -> n ex n
MAP-----PDT -> ex n
and so on..
JJ = adj
NN = n
WRB = adv
LS =
PRP = prp
DT = dt
FW = pw
CHECKING-------> null
Run Code Online (Sandbox Code Playgroud)
PrintMap功能:
public static void printMap(Map …Run Code Online (Sandbox Code Playgroud) 有一个char array下面,如图所示.需要按计数的降序打印每个字符的计数.
char arr[] = {'A', 'B', 'E', 'A', 'C', 'D', 'E', 'A', 'C', 'E', 'B', 'A', 'A', 'B','E','E'};
Run Code Online (Sandbox Code Playgroud)
寻找这个问题的有效解决方案.我尝试过HashMap,ArrayList组合.有没有办法HashMap单独执行此操作,而不使用ArrayList(或任何其他List实现).
import java.util.*;
public class Map {
public static void main(String[] args) {
Map map = new HashMap();
map.put("father", "Rob");
System.out.println(map.get("father"));
}
}
Run Code Online (Sandbox Code Playgroud)