- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一种算法,该算法在很大程度上依赖于某些列表中元素的顺序,但是,该列表需要允许重复和随机访问其元素(不使用迭代器)。我在java中搜索过这样的东西,但找到的选项总是缺少我提到的条件之一。
任何人都可以建议我用 java 解决这个问题,时间复杂度较低或适中吗?
如果我扩展 ArrayList 的类并重写方法 add,并在添加后的方法中调用 collection.sort(),这样在时间复杂度方面会好吗?
我认为添加一个元素需要一个常数时间,因为它是直接添加到列表的末尾,而sort方法需要n logn,那么在这种情况下,插入会花费n logn时间吗?
感谢任何帮助。
谢谢。
最佳答案
您可以使用 TreeMap,它按排序顺序和键出现的次数存储键,您可以存储为值。现在您可以遍历 Map 并填充 ArrayList(在键值大于 0 的地方填充重复项)总体复杂度为 nlogn空间复杂度log n
如果您扩展 ArrayList 并找到插入点/或调用 collections.sort(),您的算法在最佳情况下为 O(n^2 *logn)。如果您的 List 初始容量不足以进行所有插入,它将调整大小(额外的 O(n) 操作)
关于java - SortedList 允许重复和随机访问元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29420004/
由于我使用的现有框架,方法调用返回一个 SortedList 对象。因为我写了这个调用的另一端,所以我知道它实际上是一个 SortedList。虽然我可以继续使用 SortedList,但使用泛型会更
我在 RecyclerView 中遇到 Android SortedList 的问题,主要是 remove 方法: public void replaceAll(List userFertList,
我想比较在 SortedList 中用作键的字节数组 public SortedList myList = new SortedList(); 问题是,我无法将条目添加到 myList 中,因为 .N
我想总结 SortedList 的某些值(时间范围从开始到结束)与林克。键包含工作日的日期,值包含给定日期可能的工作时间。我想回答的问题是,在给定的时间范围内有多少小时是可能的。 我设法计算了 key
可以SortedList取两个键并返回一个值? 我有 SortedList 类型的标准 但现在我需要传递两个键来找到值 SortedList . 这可能吗?如果没有,请告诉我其他一些解决方案,我构建了
我有降序排列的 SortedList。 public class MyComparer : IComparer { public int Compare(int x, int
我正在尝试将 SortedList 与不区分大小写的字符串比较结合使用。以下是工作: SortedList mySL = new SortedList(new CaseInsensitiveCompa
我正在开发一种算法,该算法在很大程度上依赖于某些列表中元素的顺序,但是,该列表需要允许重复和随机访问其元素(不使用迭代器)。我在java中搜索过这样的东西,但找到的选项总是缺少我提到的条件之一。 任何
其中一位使用我编写的协议(protocol)生成工具的人报告了一个我无法真正理解的错误: Failed to compare two elements in the array. 我使用 Sorted
看起来 SortedList 已被排除。您认为现有集合中最合适的是什么? (保持同样快速的访问和更改) silverlight字典可以永久排序吗? 最诚挚的问候VLK 最佳答案 我将 Wintelle
我最初有一些代码,简化后看起来像这样: var planets = new List { new Planet {Id = 1, Name = "Mercury"}, new Plan
不使用扩展方法 (LINQ)。不幸的是,我仅限于 .NET 2.0。 (是的,这很糟糕) 寻找接近 O(log(n)) 的东西。 感谢您的帮助。 最佳答案 要查找大于给定键的第一个键,您可以使用键列表
我的问题是枚举器从 SortedList 中删除项目是否安全? SortedList myDictionary; // omitted code IEnumerator enum = myDictio
我正在向排序列表中添加一些独特的法语单词,但它似乎无法区分某些单词,例如“bœuf”和 boeuf。 private static void TestSortedList() { Thread
有没有办法将 android.support.v7.util.SortedList 转换为 java.util.List? (或任何其他子类)我看到的唯一方法是遍历 SortedList 并将元素一个
我有这个对象: class Animation { //[...] private SortedList frames = new SortedList();
我在理解 RecyclerView 的 SortedList 时遇到一些问题。 假设我有一个非常简单的类,只有一个非常简单的类保存数据: public class Pojo { public
下面的代码遍历一个列表并获取值,但是我如何编写一个类似的语句来获取键和值 foreach (string value in list.Values) { Console.WriteLine(v
任何人都可以解释为什么这段代码: Dim Data As New SortedList(StringComparer.InvariantCultureIgnoreCase) Data.Add("AB"
有一个SortedList slLanguage = new SortedList(); slLanguage.Add("Bahasa","id-ID"); slLanguage.Add("Chine
我是一名优秀的程序员,十分优秀!