- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 .NET 4 的 SortedSet<T>
Collection 。它似乎拥有我需要的一切,除了一些东西。
问:我希望能够获取与给定值相比更低或更高的所有元素。在Java中TreeSet
,有名为 tailSet
的方法和headSet
,执行这些操作。我希望能够对 SortedSet<T>
执行同样的操作。我能找到的最接近的是 GetViewBetween
。但是,如果我想将 SortedSet 与 string
一起使用怎么办? ? string
没有最大值据我所知,但我需要给该方法一个上限和下限。
我如何模仿 tailSet
的行为和headSet
使用SortedSet
?考虑实现SortedSet
,我认为这些都是非常容易实现的方法。
谢谢!
最佳答案
我相信你可以像这样模仿他们: sortedSet.GetViewBetween(start, sortedSet.Max)
sortedSet.GetViewBetween(sortedSet.Min, end)
static SortedSet<T> TailSet<T>(this SortedSet<T> set, T start)
{
return set.GetViewBetween(start, set.Max);
}
static SortedSet<T> HeadSet<T>(this SortedSet<T> set, T end)
{
return set.GetViewBetween(set.Min, end);
}
或者,您可以使用 LINQ:
static SortedSet<T> TailSet<T>(this SortedSet<T> set, T start)
{
return new SortedSet<T>(set.SkipWhile(
x => set.Comparer.Compare(x, start) < 0));
}
static SortedSet<T> HeadSet<T>(this SortedSet<T> set, T end)
{
return new SortedSet<T>(set.TakeWhile(
x => set.Comparer.Compare(x, end) < 0));
}
主要区别在于 GetViewBetween
为您提供一个带有指向原始集的指针的对象,因此原始集中的任何更改都可以反射(reflect)在副本中。 LINQ 版本根据原始内容创建一个新集,并提供不相互跟踪的副本。当然,你也可以这样做 new SortedSet<T>(set.GetViewBetween(set.Min, end))
获得克隆行为。
关于java - .NET相当于Java的TreeSet操作tailSet和headSet吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007099/
来自TreeSet (a SortedSet) 在 Java 8 中: 我调用::headSet方法获取排序集合前面的对象的 SortedSet。 我调用::removeAll 来删除那些最前面的对象
我在做一个 hackerrank 问题,要求我找出使用插入排序对数组进行排序所需的移位次数,而不实际使用插入排序对数组进行排序,否则将是 O(n^2) 时间-复杂!这是我的代码超时了。据我所知,调用
我正在开发一个 Android 应用程序,它会大量使用两个设备之间的蓝牙 RFCOMM 连接,并使用默认的 BluetoothAdapter 进行数据传输。 我想知道的是: 是否可以在用户使用蓝牙耳机
我有以下代码片段: class Cert { public static void main(String[] args) throws IOException { NavigableSet
当用户快速双击耳机上的播放/暂停按钮时,我有代码可以检测到并自动跳到下一首歌曲。不幸的是,似乎在使用 RemoteControlClient 时,它使用了相同的 PLAY_PAUSE 事件。如果你不小
我想将 iOS VoiceOver 声音定向到耳机,即使它没有插入。 换句话说,当我的应用程序打开时,VoiceOver 声音(以及我在应用程序中使用 AVSpeechUtterance 等播放的其他
对于一个应用程序,我们需要从两个不同的音频源进行录制。一个麦克风是一个特殊的(喉咙)麦克风,它配备了与带麦克风的 iPhone 耳机使用的相同连接器。 在第二个 channel 上,我们想录制环境声音
这个问题在这里已经有了答案: why use \0 to include highEndPoint as part of the sublist (2 个答案) 关闭 5 年前。 这个成语是什么意思
我使用 Delphi 10 为我的 Android 手机创建一个媒体播放器应用程序。我使用以下组件将广播接收器包含到我的应用程序中: https://github.com/barisatalay/de
我有一个蓝牙耳机(与我的智能手机配对),它在等待连接和对话期间会产生拨号信号的声音。 所有其他声音如:按键声音、mp3、不同应用程序的其他声音都是由智能手机的扬声器产生的。 我的问题: 有没有可能的方
作为我的类(class)项目之一,我想通过蓝牙耳机或任何此类蓝牙设备按下它们上的可用按钮来启动/触发我自己的 android 应用程序。我将按下蓝牙耳机上的任何特定按钮,我的应用程序应该能够检测到该按
JavaDoc 中写道,TreeSet 的基本操作在 log(N) 时间内完成,其中 N 是集合的大小。在我看来,如果集合足够大,headSet 和 tailSet 方法应该通过二进制搜索之类的方法找
我是一名优秀的程序员,十分优秀!