标签: sortedset

Java SortedSet + Comparator,与equals()问题的一致性

我想要一个按集合大小排序的SortedSet集合(在这种情况下设置自己,但不一定是一般).这似乎违反了使比较器与equals()一致的禁止 - 即两个集合可能不相等(通过具有不同的元素),但是与相同的值相比(因为它们具有相同数量的元素).

从理论上讲,我也可以通过比较器的方式对相同大小的组进行排序,但是使用排序不会利用这一点,并且没有真正有用的+直观的方法来比较相同大小的集合(至少,在我的特定情况下),所以这似乎是一种浪费.

这种不一致的情况是否有问题?

java equals sortedset comparator

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

SortedSet <>.包含()如何实现自己的比较?

我想检查具有给定值的Object是否存在,SortedSet<>但我不明白自定义比较在这里是如何工作的.在List<>.Exists()我可以只使用lambda,但我不能那样做,我没有得到整个界面的东西,而msdn说我需要覆盖int返回功能.

public class Node
{
    public int X, Y;
    public int rand;

    public Node(int x, int y, int r)
    { X = x; Y = y; rand = r; }
}

class Program
{
    static void Main(string[] args)
    {
        SortedSet<Node> mySet = new SortedSet<Node>();
        mySet.Add(new Node(1, 2, 90));
        Node myNode = new Node(1, 2, 50);
        // I want this to check if X and Y are the same
        if (mySet.Contains(myNode, interfaceThing))
            Console.WriteLine("Sth is already …
Run Code Online (Sandbox Code Playgroud)

c# sortedset

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

根据 JSON 属性从 Redis 排序集中删除

我有大量的项目存储在 Redis 排序集中(数量级为 100,000),并且更新得相当频繁。这些项目是编码为 JSON 字符串的对象,并且集合中的排序排名是从对象的日期/时间属性派生的(在插入时,通过我的代码)。

集合中的每个项目都有一个 Id 属性(它是编码为字符串的 Guid),它在系统中唯一标识该项目。

当这些项目更新时,我需要更新排序集中的项目,或者删除并重新插入该项目。我遇到的问题是如何找到该项目来执行操作。

我当前正在做的是将排序集的全部内容加载到内存中,在我的代码中对该集合进行操作,然后将完整的集合写回 Redis。虽然这有效,但它不是特别有效,并且如果列表开始变得非常大,则无法很好地扩展。

有人对如何以更有效的方式做到这一点有任何建议吗?我拥有的项目的唯一唯一标识符是项目中编码的 Id 属性。

非常感谢,

理查德.

json sortedset redis

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

SortedSet first 和 Min() 不一样

First 和 Min() 不同
Last 和 Max() 不同

在 foreach 中,排序为
aaa
bbb
ccc
^^

最小()
^^

最大 ()
抄送

如何使 Min() 和 first 相同?
如何使 Max() 和 last 相同?

ss.FirstOrDefault() 不等于 ss.Min()
ss.Reverse().FirstOrDefault() 不等于 ss.Max()

public void SS()
{
    SortedSet<string> ss = new SortedSet<string>(StringComparer.OrdinalIgnoreCase);
    ss.Add("bbb");
    ss.Add("aaa");            
    ss.Add("^^");
    ss.Add("ccc");
    foreach (string s in ss)
        Debug.WriteLine(s);
    Debug.WriteLine(ss.Min());
    Debug.WriteLine(ss.Max());                   
}
Run Code Online (Sandbox Code Playgroud)

.net sorting sortedset

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

获取null作为整数类型的默认值

来自Leetcode Discussion的算法使用二进制搜索树来保存输入数组中的一系列值,以检查此数组是否包含最多不同于t的值,并且它们的索引最多彼此远离k.

JAVA:

public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
    if (nums == null || nums.length == 0 || k <= 0) {
        return false;
    }

    final TreeSet<Integer> values = new TreeSet<>();
    for (int ind = 0; ind < nums.length; ind++) {

        final Integer floor = values.floor(nums[ind] + t);
        final Integer ceil = values.ceiling(nums[ind] - t);

        if ((floor != null && floor >= nums[ind])
                || (ceil != null && ceil <= nums[ind])) {
            return true;
        }

        values.add(nums[ind]); …
Run Code Online (Sandbox Code Playgroud)

.net c# sortedset binary-search-tree

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

scala排序某一类的集合

我创建了一套特定的dto.

dto名为"NumericValue",并具有以下类成员:1)time:Long 2)value:Double

我有一个名为"点"的集合,我想根据增加的时间对其进行排序,即0,1,2,4,100 ......

附件是代码:

val points: set(NumericValue) = numericValueSet

val setSorted = collection.immutable.SortedSet[Long]() ++ points
Run Code Online (Sandbox Code Playgroud)

我做了以下事情:

但是结果没有按时间排序.

谢谢

scala set sortedset

0
推荐指数
1
解决办法
812
查看次数

返回SortedSet

当我运行以下代码时:

  Student student1 = new Student("Billy", 13);
  Student student2 = new Student("Bob", 12);
  Student student3 = new Student("Belle", 11);
  Student student4 = new Student("Barry", 10);
  Student student5 = new Student("Brian", 10);
  Student student6 = new Student("Bane", 13);
  Collection<Student> students = new HashSet<Student>();
  students.add(student1);
  students.add(student2);
  students.add(student3);
  students.add(student4);
  students.add(student5);
  students.add(student6);
  for(Student student : students)
  {
    String name = student.getName();
    System.out.println(name);
  }
Run Code Online (Sandbox Code Playgroud)

它将打印出我的学生对象的名称列表.现在我想按字母顺序排列.我认为它就像使用TreeSet或SortedSet一样简单.

像这样:

 Student student1 = new Student("Billy", 13);
 Student student2 = new Student("Bob", 12);
 Student student3 = new Student("Belle", 11);
 Student …
Run Code Online (Sandbox Code Playgroud)

java collections sortedset treeset

0
推荐指数
1
解决办法
227
查看次数

C#将对象添加到List

我刚刚开始学习c#,并且我正在创建一个程序的问题.

我正在创建一个程序,它将创建一个乐透票数,每个票都带有一个ID和六个随机生成的数字.

这是我创建故障单并将其添加到List的代码.

Random random = new Random();// Random number generator
for (int i = 0; i < 1000; i++)
{
    do
    {
    int randomNumber = random.Next(1, 42);// Create randoms numbers between 1 and 42
    ticketNumbers.Add(randomNumber);// Add the random numbers to the ticketNumbers SortedSet                  
    }
    while (ticketNumbers.Count< 6);// Stop Adding once the six numbers is reached

    CTicket firstTicket;
    firstTicket = new CTicket(i, ticketNumbers);// Create ticket object pass i's current value as the ticket id and pass the ticketNumbers sorted set …
Run Code Online (Sandbox Code Playgroud)

c# list sortedset

0
推荐指数
1
解决办法
188
查看次数

在SortedSet <T>上调用ToArray()/ ToList()是否保证返回已排序的数组/列表?

调用ToArray()/ ToList()on SortedSet<T>保证返回已排序的数组/列表吗?

当我调用这些方法中的任何一个时,我都会得到一个已排序的集合.但是,文档似乎没有提到这种行为.它的开场白说:

表示按排序顺序维护的对象集合.

但我不确定这是否隐含地保证了这种行为.

假设这是保证行为是否安全?或者转换为数组/列表后的顺序实际上是未定义的,完全取决于实现的常识?

c# sorting list sortedset

0
推荐指数
1
解决办法
658
查看次数

Java SortedSet 实现,允许您在 O(1) 中获取最小/最大元素

是否有一个排序集实现允许在 O(1) 中获取第一个元素?C++ 的 std::set 可以做到这一点,所以我不明白为什么我们不能在 Java 中做到这一点。谢谢!

java collections sortedset

0
推荐指数
1
解决办法
535
查看次数

从SortedSet中删除第一个元素c#

我有一个SortedSet自定义对象,我想删除第一个元素,我First()从SortedSet集合中的函数.问题是不起作用,我不知道为什么.

有帮助吗?

[编辑]我的代码

URL u = Queue.First(); Queue.Remove(U);

其中URL是自定义类

c# sortedset

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

Grails中的SortedSet不起作用

我想使用SortedSetGrails,但我得到的只是一个MissingMethodException.

包含有序集的类如下所示:

class SystemUser {

    SortedSet organisations
    // ... some other fields

    static hasMany = [organisations: Organisation]
    static belongsTo = [Organisation]

}
Run Code Online (Sandbox Code Playgroud)

......以及Comparable像这样实现的类:

class Organisation implements Comparable {

    String name
    // ... some other fields

    static hasMany = [users: SystemUser]

    int compareTo(other) {
        return name.comparteTo(other.name)
    }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试保存SystemUser对象时,我收到此异常消息:

groovy.lang.MissingMethodException: No signature of method: java.lang.String.comparteTo() is applicable for argument types: (java.lang.String) values: [ABC]
Possible solutions: compareTo(java.lang.String), compareTo(java.lang.Object)
Run Code Online (Sandbox Code Playgroud)

我的例子几乎与官方参考的例子相同.

java grails groovy comparable sortedset

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