Tag: 集合

比较两个List <string>是否相等

除了一个接一个地逐步遍历元素之外,我如何比较两个string列表是否相等(在.NET 3.0中): 这失败了: // Expected result. List<string> expected = new List<string>(); expected.Add( "a" ); expected.Add( "b" ); expected.Add( "c" ); // Actual result actual = new List<string>(); actual.Add( "a" ); actual.Add( "b" ); actual.Add( "c" ); // Verdict Assert.IsTrue( actual == expected ); 提前致谢

jquery如何在数组中find一个Object by属性

鉴于我有一个“目的”对象的数组: //array of purpose objects: var purposeObjects = [ {purpose: "daily"}, {purpose: "weekly"}, {purpose: "monthly"} ]; (为了简单,我省略了其他属性) 现在我想有一个方法返回一个特定的对象,如果find匹配的用途名称。 这不工作: function findPurpose(purposeName){ return $.grep(purposeObjects, function(){ return this.purpose == purposeName; }); }; findPurpose("daily"); 但它实际上返回一个空数组: [] 我正在使用JQuery 1.5.2。 我也尝试了$ .each(),但没有运气。 很显然,大多数JQuery方法都是为DOM元素(比如filter() 。 任何想法如何实现这一目标?

添加到集合然后对其进行sorting还是添加到已sorting的集合?

如果我有这样的Map : HashMap<Integer, ComparableObject> map; 我想获得使用自然顺序sorting的值的集合,哪种方法最快? (一个) 创build像ArrayList这样的可sorting集合的实例,添加值,然后对其进行sorting: List<ComparableObject> sortedCollection = new ArrayList<ComparableObject>(map.values()); Collections.sort(sortedCollection); (B) 创build一个有序集合(如TreeSet的实例,然后添加值: Set<ComparableObject> sortedCollection = new TreeSet<ComparableObject>(map.values()); 请注意,生成的集合永远不会被修改,所以sorting只需要进行一次。

有没有一个优雅的方式来消除使用番石榴转换collections时的空值?

使用Google Collections( 更新 : Guava )时,我有一个关于简化一些Collection处理代码的问题。 我有一堆“计算机”对象,我想结束他们的“资源ID”的集合。 这样做是这样的: Collection<Computer> matchingComputers = findComputers(); Collection<String> resourceIds = Lists.newArrayList(Iterables.transform(matchingComputers, new Function<Computer, String>() { public String apply(Computer from) { return from.getResourceId(); } })); 现在, getResourceId()可能会返回null(并且改变它现在不是一个选项),但是在这种情况下,我想省略生成的String集合中的空值。 以下是一个过滤空白的方法: Collections2.filter(resourceIds, new Predicate<String>() { @Override public boolean apply(String input) { return input != null; } }); 你可以把这些放在一起 Collection<String> resourceIds = Collections2.filter( Lists.newArrayList(Iterables.transform(matchingComputers, new […]

将priorityQueue更改为max priorityqueue

我在整数Java的优先队列: PriorityQueue<Integer> pq= new PriorityQueue<Integer>(); 当我调用pq.poll()我得到最小的元素。 问题:如何改变代码来获得最大的元素?

如何快速删除列表中的项目

我正在寻找一种方法来快速从C# List<T>删除项目。 该文档指出, List.Remove()和List.RemoveAt()操作都是O(n) List.Remove List.RemoveAt 这严重影响了我的应用程序。 我写了几个不同的删除方法,并在一个List<String>上testing了它们全部500,000个项目。 testing用例如下所示… 概观 我写了一个方法,可以生成一个简单的包含每个数字(“1”,“2”,“3”,…)的string表示的string列表。 然后我试图remove列表remove每一个第五项。 以下是用于生成列表的方法: private List<String> GetList(int size) { List<String> myList = new List<String>(); for (int i = 0; i < size; i++) myList.Add(i.ToString()); return myList; } testing1:RemoveAt() 这是我用来testingRemoveAt()方法的testing。 private void RemoveTest1(ref List<String> list) { for (int i = 0; i < list.Count; i++) if (i […]

AddRange添加到集合

一位同事今天问我如何添加范围到一个集合。 他有一个inheritance自Collection<T> 。 这种types的只读属性已经包含了一些项目。 他希望将另一个集合中的项目添加到属性集合中。 他如何以一种C#3友好的方式来做到这一点? (请注意关于只读属性的约束,这会阻止像联合和重新分配这样的解决scheme。) 当然,与财产的foreach。 添加将工作。 但是一个List<T>风格的AddRange会更加优雅。 写一个扩展方法很简单: public static class CollectionHelpers { public static void AddRange<T>(this ICollection<T> destination, IEnumerable<T> source) { foreach (T item in source) { destination.Add(item); } } } 但是我有一种感觉,我正在重新发明轮子。 我在System.Linq或morelinq中找不到类似的东西。 糟糕的devise? 只是打电话添加? 缺less显而易见的?

Scala集合如何从map操作中返回正确的集合types?

注意:这是一个常见问题,具体询问我可以自己回答,因为这个问题似乎经常出现,我想把它放在一个可以通过search轻松find的地方 正如我在这里回答评论的提示 例如: "abcde" map {_.toUpperCase} //returns a String "abcde" map {_.toInt} // returns an IndexedSeq[Int] BitSet(1,2,3,4) map {2*} // returns a BitSet BitSet(1,2,3,4) map {_.toString} // returns a Set[String] 在scaladoc中,所有这些都使用从TraversableLikeinheritance的map操作,那么如何才能始终返回最具体的有效集合呢? 即使是通过隐式转换提供map String 。

线程安全列表<T>属性

我想要List<T>一个实现作为一个属性,可以毫无疑问地使用线程安全。 像这样的东西: private List<T> _list; private List<T> MyT { get { // return a copy of _list; } set { _list = value; } } 似乎仍然需要返回一个集合的副本(克隆),所以如果我们迭代集合的地方,同时集合被设置,那么不会引发exception。 如何实现线程安全的集合属性?

为什么Collections.sort使用Mergesort但Arrays.sort不?

我正在使用JDK-8(x64)。 对于Arrays.sort我在Java文档中find了以下内容: sortingalgorithm是由Vladimir Yaroslavskiy,Jon Bentley和Joshua Bloch提供的Dual-Pivot Quicksort 。 对于Collections.sort我发现这个: 这个实现是一个稳定的,自适应的,迭代的mergesort …这个实现把指定的列表转储到一个数组中,对数组进行sorting ,然后对列表进行迭代,以重置数组中相应位置的每个元素。 如果Collections.sort使用数组,为什么不调用Arrays.sort或使用双枢轴QuickSort ? 为什么使用Mergesort ?