作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试用 Java 编写一个 Retrieve 函数,它接受一个键并从 Pairs 的数组列表中返回一个值。有什么建议么?
ArrayList<Pair<K,V>> set_of_pairs = new ArrayList<Pair<K,V>>();
public void insert(K key, V value) {
Pair<K,V> pair = new Pair<K,V>(key,value);
set_of_pairs.add(pair);
}
public void traverse(Visitor<K,V> visitor) {
}
public V retrieve(K key) {
int i = 0;
if (set_of_pairs.containsKeys(key) == false) {
return null;
}
else {
for(Pair<K,V> set_of_pairs: pair) {
if (pair.getKey() == key) {
return pair.getValue();
}
}
}
}
最佳答案
您可以将 retrieve
方法的逻辑更正为:
public V retrieve(K key) {
// iterating on each element of the list would suffice to check if a key exists in the list
for (Pair<K, V> pair : set_of_pairs) { // iterating on list of 'Pair's
if (pair.getKey().equals(key)) { // 'equals' instead of ==
return pair.getValue();
}
}
return null;
}
此外,这可以简化为使用 java-stream 的逻辑并按照 shmosel 的指示改编
public V retrieveUsingStreams(K key) {
return set_of_pairs.stream()
.filter(pair -> pair.getKey().equals(key)) // the 'if' check
.findFirst() // the 'return' in your iterations
.map(Pair::getValue) // value based on the return type
.orElse(null); // else returns null
}
关于java - 如何遍历成对的数组列表以检索指定键的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53531236/
我是一名优秀的程序员,十分优秀!