草庐IT

collection_list

全部标签

java - 如何有条件地替换 Collection 中的值,例如 replaceIf(Predicate<T>)?

如果List或Collection中的值为null,是否有任何简单的方法可以替换该值?我们总能做到list.stream().filter(Objects::nonNull);并可能将0添加回列表。但我正在寻找的是类似list.replaceIf(Predicate)的API. 最佳答案 这只适用于List,不适用于Collection,因为后者没有替换或设置元素的概念。但是给定一个List,使用List.replaceAll()方法很容易做你想做的事情:Listlist=Arrays.asList("a","b",null,"c"

java - invokeAll() 不愿意接受 Collection<Callable<T>>

我不明白为什么这段代码不能编译ExecutorServiceexecutor=newScheduledThreadPoolExecutor(threads);classDocFeederimplementsCallable{....}...Listlist=newLinkedList();list.add(newDocFeeder(1));...executor.invokeAll(list);错误消息是:ThemethodinvokeAll(Collection>)inthetypeExecutorServiceisnotapplicableforthearguments(List)

java - 如何在Java中实现固定大小的 "list"?

既然Java核心库没有这样的集合,数组是不是最好的选择,特别是如果不想依赖第三方库? 最佳答案 Arrays.asList(T...)返回由指定数组支持的固定大小列表Object[]array=newObject[10];ListfixedList=Arrays.asList(array); 关于java-如何在Java中实现固定大小的"list"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

java - 从 list<String> 中的 java 中删除一个值会抛出 java.lang.UnsupportedOperationException

我想从我的列表中删除特定元素。我不想在遍历列表时这样做。我想指定必须删除的值。在javadocs中,我找到了函数List.remove(Object0)这是我的代码:Stringstr="1,2,3,4,5,6,7,8,9,10";String[]stra=str.split(",");Lista=Arrays.asList(stra);a.remove("2");a.remove("3");但我得到一个异常:java.lang.UnsupportedOperationException 最佳答案 问题是Arrays.asList(

java - Collections.unmodifiableCollection(list) 是否复制集合?

privateListlist;如果我们使用Collections.unmodifiableCollection(list),这会返回集合的副本,还是比创建副本更快?我们可以做other.addAll(list)但我们有600,000个对象的列表,所以addAll不是很好。调用方只需要一个只读集合。 最佳答案 Collections.unmodifiableList只是返回一个不可修改的包装器;它不会复制输入列表的内容。它的Javadoc相当清楚地说明了这一点:Returnsanunmodifiableviewofthespecif

java - 为什么有人用List基类实例化一个新的ArrayList?

我经常遇到人们实例化一个新的ArrayList并将其分配给List接口(interface)的代码,如下所示:Listnames=newArrayList();这种方法背后的原因是什么? 最佳答案 将您的代码与接口(interface)的特定实现分离。这也可以帮助您转移到List的另一个实现future的界面。例如——你有Listnames=newArrayList();稍后你决定你应该使用List的一些其他实现。界面,说LinkedList所以你只需将其更改为Listnames=newLinkedList();没有任何问题。

java - 我应该返回 List 还是 ArrayList?

我发现自己同意返回一个接口(interface)而不是一个具体的类。原因很简单,我要松耦合。但是会有其他影响或权衡吗? 最佳答案 最好返回最适合您的接口(interface)的通用类型。如果出于某些原因ArrayList本质上适合您要返回的数据,那么您应该使用它。通常List没问题,但如果返回值本质上是无序的,您也可以考虑使用Collection: 关于java-我应该返回List还是ArrayList?,我们在StackOverflow上找到一个类似的问题:

java - 集合 - Iterator.remove() 与 Collection.remove()

根据太阳,"Iterator.removeistheonlysafewaytomodifyacollectionduringiteration;thebehaviorisunspecifiediftheunderlyingcollectionismodifiedinanyotherwaywhiletheiterationisinprogress."我有两个问题:是什么让这个操作“Iterator.remove()”比其他操作更稳定?如果“Collection.remove()”方法在大多数用例中都没有用,他们为什么要提供该方法? 最佳答案

java: 当 SomeClass 实现 SomeInterface 时从 List<SomeClass> 转换为 List<SomeInterface>

我脑抽筋了:我有一个publicinterfaceSomeInterface和一个staticprivateclassSomeClass并试图返回List从我的一种方法,但我得到了错误(在下面的returnlist;行):Typemismatch:cannotconvertfromListtoList如何在不创建新列表的情况下解决此问题?澄清:我不想将列表创建为List(也许是显而易见的解决方案)因为私下里我想维护一个List允许将来访问SomeClass的方法,而不是公共(public)接口(interface)中的方法。这在下面的示例中没有显示,但在我的实际程序中我需要它。impo

Java:如何将 List<?> 转换为 Map<String,?>

这个问题在这里已经有了答案:HowtoconvertListtoMap?(20个答案)关闭7年前。我想找到一种方法来获取下面的对象特定例程并将其抽象为一个方法,您可以通过该方法传递类、列表和字段名以取回Map。如果我能得到关于使用的模式或等的一般指示,这可以让我在正确的方向上开始。Mapmapped_roles=newHashMap();Listp_roles=(List)c.list();for(Roleel:p_roles){mapped_roles.put(el.getName(),el);}为了这个?(伪代码)MapMapMe(Classclz,Collectionlist,S