Tag: 集合

C#集合?

有谁知道是否有一个很好的C#中的Java Set集合? 我知道你可以通过填充但忽略这些值来使用Dictionary或HashTable来模仿一个集合,但这不是一个很好的方法。

java.util.Collection的经典集合操作

在java.util.Collection类中是否有经典集合操作的内置function? 我的具体实现是ArrayList,但是这听起来像应该适用于Collection的所有子类。 我正在寻找像这样的东西: ArrayList<Integer> setA … ArrayList<Integer> setB … ArrayList<Integer> setAintersectionB = setA.intersection(setB); ArrayList<Integer> setAminusB = setA.subtract(setB); 经过一番search,我只能find本土解决scheme。 此外,我意识到我可能会混淆“集合”的想法与“集合”的想法,不允许和允许分别重复。 也许这只是Set接口的function? 如果没有人知道任何内置的function,也许我们可以使用它作为标准实践Java集操作代码的存储库? 我想这个轮子已经被重新改造了很多次。

List <T>保证插入顺序吗?

假设我在列表中有3个string(例如“1”,“2”,“3”)。 然后我想重新排列它们在位置1处放置“2”(例如“2”,“1”,“3”)。 我正在使用此代码(将indexToMoveTo设置为1): listInstance.Remove(itemToMove); listInstance.Insert(indexToMoveTo, itemToMove); 这似乎工作,但我偶尔会得到奇怪的结果; 有时订单不正确或者列表中的项目被删除! 有任何想法吗? List<T>保证顺序吗? 有关: List <T>是否保证项目将按照他们添加的顺序返回?

为什么C#集合初始化器以这种方式工作?

我正在查看C#集合初始化器,发现实现非常实用,但也非常不同于C# 我能够创build这样的代码: using System; using System.Collections; class Program { static void Main() { Test test = new Test { 1, 2, 3 }; } } class Test : IEnumerable { public IEnumerator GetEnumerator() { throw new NotImplementedException(); } public void Add(int i) { } } 因为我已经满足了编译器的最低要求(实现IEnumerable和一个public void Add ),但是工作起来却显然没有任何价值。 我想知道是什么阻止了C#团队创build更严格的要求? 换句话说,为了编译这个语法,编译器不要求该types实现ICollection吗? 这似乎更多的是其他C#function的精神。

Collections.synchronizedList和同步

List<String> list = Collections.synchronizedList(new ArrayList<String>()); synchronized (list) { list.add("message"); } 这个块“synchronized(list){}”真的需要在这里吗?

Java:迭代通过一个集合的最佳方式(这里是ArrayList)

今天,当我遇到一段我已经使用了数百次的代码时,我开心地编写代码: 迭代一个集合(这里是ArrayList) 出于某种原因,我真的看了Eclipse的自动完成选项,它让我想知道: 以下哪些环路比其他环路更适合使用? 经典的数组索引循环: for (int i = 0; i < collection.length; i++) { type array_element = collection.get(index); } 迭代器hasNext()/ next(): for (Iterator iterator = collection.iterator(); iterator.hasNext();) { type type = (type) iterator.next(); } 而我最喜欢的是因为它写得这么简单: for (iterable_type iterable_element : collection) { }

什么Java 8 Stream.collect等价物在标准Kotlin库中可用?

在Java 8中,有Stream.collect ,它允许在集合上进行聚合。 在Kotlin中,这不是以同样的方式存在,除了可能作为stdlib中扩展函数的集合。 但是不清楚不同用例的等价关系是什么。 例如, JavaDoc for Collectors的顶部是为Java 8编写的示例,将它们移植到Kolin时,不能在不同的JDK版本上使用Java 8类,因此可能应该使用不同的方式编写。 就在线资源展示Kotlin集合的例子而言,它们通常是微不足道的,并没有真正与相同的用例相比较。 什么是真正符合Java 8 Stream.collectlogging的案例的好例子? 这里的列表是: 将名字积累到列表中 将名称累加到TreeSet中 将元素转换为string并连接它们,用逗号分隔 计算员工的工资总额 按部门分组员工 按部门计算工资总额 将学生划分为通过和失败 上面链接了JavaDoc中的细节。 注意: 这个问题是由作者故意写的和回答的( 自我回答的问题 ),所以对于常见的Kotlin话题的习惯性的回答是在SO中。 此外,为了澄清一些真正的古老的答案写为科特林的阿尔法,是不是今天的Kotlin准确。

如何扩展一个Scala列表来启用切片,而不是通过显式的位置,而是通过给定的谓词/条件

对于 trait Item case class TypeA(i: Int) extends Item case class TypeB(i: Int) extends Item 考虑一个斯卡拉项目列表如 val myList = List(TypeA(1), TypeB(11), TypeB(12), TypeA(2), TypeB(21), TypeA(3), TypeB(31)) 目标是定义一个新的分slice方法,可以应用到myList ,并将谓词或条件作为参数; 例如 myList.slice { x => x.isInstanceOf[TypeA] } 会交付 List(List(TypeA(1), TypeB(11), TypeB(12)), List(TypeA(2), TypeB(21)), List(TypeA(3), TypeB(31))) 在这个例子中,相同的结果将通过 myList.slice { case TypeA(x) => x < 10 } 非常感谢。

确定对象是否是VBA中的集合的成员

如何确定对象是否是VBA中的集合的成员? 具体来说,我需要找出一个表定义是否是TableDefs集合的成员。

如何重写List <T>在C#中的Add方法?

我目前正在寻找自己的collections,这将像一个常规列表,除了它只能容纳10个项目。 如果在列表中已经有10个项目时添加项目,则在添加新项目之前,第一个项目将被删除。 我想要做的是创build一个扩展System.Collections.Generic.List<T>的类,然后修改Add(T item)方法以包含删除第一个项目的function(如有必要)。