有没有一个很好的理由为什么Pair<L,R>Java中没有?这个C++构造的等价物是什么?我宁愿避免重新实现自己.
似乎1.6提供类似的东西(AbstractMap.SimpleEntry<K,V>),但这看起来很复杂.
Java中的Hashtable将受益于具有元组结构的值.我可以在Java中使用哪种数据结构来做到这一点?
Hashtable<Long, Tuple<Set<Long>,Set<Long>>> table = ...
Run Code Online (Sandbox Code Playgroud) 我正在寻找Java中的KeyValuePair类.
由于java.util大量使用接口,因此没有提供具体实现,只有Map.Entry接口.
我可以导入一些规范的实现吗?这是我讨厌实施100倍的"管道工编程"课程之一.
我是java的新手,我想存储一对双打的数组.我的代码看起来像这样:
import java.util.ArrayList;
import java.util.Map.Entry;
List<Entry<Double, Double>> values = new ArrayList<>();
Entry<Double, Double> pair;
// set pair values:
// pair.setKey(0.5); // this method does not exists
// pair.setValue(3.6);
values.add(pair);
Run Code Online (Sandbox Code Playgroud)
如何初始化pair变量?是否有更好的结构来存储我的双打数组?
只是尝试这个问题,我在过去的考试试卷中发现,这样我就可以为即将进行的Java考试做准备.
提供用于表示事物对的通用类Pair.该类应该提供一个构造函数,一个获取该对的第一个成员的方法,一个获取该对的第二个成员的方法,一个用于设置该对的第一个成员的方法,一个用于设置该对的第二个成员的方法.该类应该针对第一个成员的两个类型进行参数化,并且对于该对的第二个成员进行参数化.
这是这个问题的正确实现吗?
public class Pair<firstThing, secondThing>{
private firstThing first;//first member of pair
private secondThing second;//second member of pair
public Pair(firstThing first, secondThing second){
this.first = first;
this.second = second;
}
public void setFirst(firstThing first){
this.first = first;
}
public void setSecond(secondThing second) {
this.second = second;
}
public thing getFirst() {
return this.first;
}
public thing getSecond() {
return this.second;
}
}
Run Code Online (Sandbox Code Playgroud) 我是Java的初学者.我有一些节点的示例数据:
A -> B
B -> F
C -> R
A -> B
B -> C
R -> C
Run Code Online (Sandbox Code Playgroud)
我已经拿出2个清单:[A,B,C,A,B,R]和[B,F,R,B,C,C]
但是,我应该如何存储对[AB,BF,CR,AB,BC,RC],以便找到唯一的对?通过唯一,我的意思是AB不等于BA.
1)所以基本上我想识别唯一的对.
2)我还想计算每个唯一对出现的次数.
编辑:
3)我也有兴趣找到每个节点连接的节点数.
4)有多少个不同的节点连接到每个节点
我正在努力决定是否真的需要编写自己的类或者是否有更简单的方法?
有时我需要处理键/值数据.
我不喜欢使用Arrays,因为它们的大小不受限制(很容易意外添加2个以上的项目,而且最后需要验证大小).此外,指数0和1成为神奇的数字,并在传达意义方面表现不佳("当我说0时,我的意思是head......").
哈希也不合适,因为可能会意外添加额外的条目.
我编写了以下类来解决问题:
class Pair
attr_accessor :head, :tail
def initialize(h, t)
@head, @tail = h, t
end
end
Run Code Online (Sandbox Code Playgroud)
它工作得很好并且解决了这个问题,但我很想知道:Ruby标准库是否已经提供了这样的类?
假设我有一些流,想收集到这样的地图
stream.collect(Collectors.toMap(this::func1, this::func2));
Run Code Online (Sandbox Code Playgroud)
但我想跳过空键/值.当然,我可以这样做
stream.filter(t -> func1(t) != null)
.filter(t -> func2(t) != null)
.collect(Collectors.toMap(this::func1, this::func2));
Run Code Online (Sandbox Code Playgroud)
但是有更美观/有效的解决方案吗?