小编use*_*031的帖子

在java中设置的间隔

我有一个带整数值的区间列表[例如.[1,4],[10,19]等].有没有办法将这些间隔放入一些java集合的容器中[例如.设置]这样我就可以在容器上调用'union'函数.'union'函数应该给我一个间隔列表,这样如果任何2个插入的间隔重叠,那么它们应该在输出中合并.我尝试在Guava中使用Range类,但最终在合并之前将所有间隔相互比较.一个优雅的方法将非常感谢!以下是我根据以下回答尝试的内容.输出为[[1,15],[17,20]],这是正确的.我想知道是否有一些现有的API实现了这样的东西.

public static void main(String[] args) {
    // mock data
    List<MyIntRange> rng_lst = new ArrayList<Junk.MyIntRange>();
    rng_lst.add(new MyIntRange(1, 10));
    rng_lst.add(new MyIntRange(5, 15));
    rng_lst.add(new MyIntRange(17, 20));

    // sort intervals by start position
    Collections.sort(rng_lst);

    // merge the intervals which overlap
    List<MyIntRange> res_lst = new ArrayList<Junk.MyIntRange>();
    MyIntRange old_rng = null;
    for (MyIntRange cur_rng : rng_lst) {
        if (old_rng == null) {
            old_rng = cur_rng;
        } else {
            if (old_rng.rng.upperEndpoint() < cur_rng.rng.lowerEndpoint()) {
                // this does not over lap with the next one
                res_lst.add(old_rng);
                old_rng …
Run Code Online (Sandbox Code Playgroud)

java algorithm interval-tree intervals guava

6
推荐指数
1
解决办法
2278
查看次数

在数据框内排序,保持一列固定

我有一个这样的数据框:

  a v
1 g 9
2 g 2
3 z 2
4 z 3
5 a 5
6 a 4
Run Code Online (Sandbox Code Playgroud)

我想保持列'a'完整[未按原样排序]并在列'a'中对列'v'进行排序.结果输出应该是这样的:

  a v
1 g 2
2 g 9
3 z 2
4 z 3
5 a 4
6 a 5
Run Code Online (Sandbox Code Playgroud)

我尝试使用order命令,但后来我必须按两列排序.有人可以帮我吗?

谢谢!

sorting r dataframe

1
推荐指数
2
解决办法
725
查看次数

标签 统计

algorithm ×1

dataframe ×1

guava ×1

interval-tree ×1

intervals ×1

java ×1

r ×1

sorting ×1