草庐IT

last_list

全部标签

java - 为什么 Collections 类包含独立(静态)方法,而不是将它们添加到 List 接口(interface)中?

对于Collections中的所有方法需要List作为他们的第一个论点,为什么这些方法不只是List接口(interface)的一部分?我的直觉是:给定一个List对象,该对象本身应该“知道”如何对其自身执行操作,例如rotate()、shuffle()或reverse()。但是,作为一名Java程序员,我必须检查List接口(interface)中的方法,以及Collections类中“那边”的静态方法,以确保我使用的是规范的解决方案。为什么有些方法作为静态独立方法放置在Collections类中,而不是添加到List接口(interface)(并且可能因此由某些现有或可能的基类实现

java - 为什么 List.add(E) 返回 boolean 而 List.Add(int, E) 返回 void?

查看javadoc我看到ArrayList有一个重载的添加方法:publicbooleanadd(Ee)Appendsthespecifiedelementtotheendofthislist.和publicvoidadd(intindex,Eelement)Insertsthespecifiedelementatthespecifiedpositioninthislist.Shiftstheelementcurrentlyatthatposition(ifany)andanysubsequentelementstotheright(addsonetotheirindices).我注意

java - 将 Map<K, V> 转换为 Map<V,List<K>>

我有如下mapMapvalues=newHashMap();values.put("aa","20");values.put("bb","30");values.put("cc","20");values.put("dd","45");values.put("ee","35");values.put("ff","35");values.put("gg","20");我想创建格式为Map>的新map,样本输出将是"20"->["aa","cc","gg"]"30"->["bb"]"35"->["ee","ff"]"45"->["dd"]我可以通过遍历实体来完成Map>output=new

java - 如何转换 List<?将 Foo> 扩展到 List<Foo>

Spring批处理的ItemWriter界面是这样的:write(Listitems);我希望ItemWriter调用一个服务,但我的服务有这个:process(Listitems);据我所知,Java泛型对于集合中的类型转换是严格的。 最佳答案 继续施放吧。阅读,List肯定是List,类型转换绝对安全。你可以用Collections.unmodifiableList()包装它如果你是偏执狂。Listfoos1=...;@SuppressWarnings("unchecked")Listfoos2=(List)(List)foos

Java 8 : Find index of minimum value from a List

假设我有一个包含元素(34,11,98,56,43)的列表。使用Java8流,我如何找到列表中最小元素的索引(例如,在本例中为1)?我知道这可以在Java中使用list.indexOf(Collections.min(list))轻松完成。但是,我正在寻找类似Scala的解决方案,我们可以简单地说List(34,11,98,56,43).zipWithIndex.min._2来获取最小值的索引。是否可以使用流或lambda表达式(例如Java8特定功能)来实现相同的结果。注意:这只是为了学习目的。我在使用Collections实用方法方面没有任何问题。 最佳

java - List<Map<String,Object>> 到 org.json.JSONObject?

List>list=newArrayList>();Mapmap=newHashMap();map.put("abc","123456");map.put("def","hmm");list.add(map);JSONObjectjson=newJSONObject(list);try{System.err.println(json.toString(2));}catch(JSONExceptione){e.printStackTrace();}这段代码有什么问题?输出是:{"empty":false} 最佳答案 publicStr

java - 如何转置List<List>?

我有一个下面的ArrayList,[Title,Data1,Data2,Data3][A,2,3,4][B,3,5,7]我想像这样转换这个,[Title,A,B][Data1,2,3][Data2,3,5][Data3,4,7]我对这种方法有点困惑。任何提示将不胜感激。谢谢。 最佳答案 这称为转置。以下代码段可以满足您的需要:importjava.util.*;publicclassListTranspose{publicstaticvoidmain(String[]args){Object[][]data={{"Title","D

java - 使用流和 lambda 将 Map<Integer, List<String>> 展平为 Map<String, Integer>

我想展平一个Map,它将一个Integer键关联到一个String列表,而不丢失键映射。我很好奇,好像使用stream和lambda这样做是可能且有用的。我们从这样的事情开始:Map>mapFrom=newHashMap();让我们假设mapFrom在某处填充,看起来像:1:a,b,c2:d,e,fetc.我们还假设列表中的值是唯一的。现在,我想“展开”它以获得第二张map,例如:a:1b:1c:1d:2e:2f:2etc.我可以这样做(或者非常相似,使用foreach):MapmapTo=newHashMap();for(Map.Entry>entry:mapFrom.entrySe

Java 8 将 String of int 转换为 List<Integer>

我有一个字符串:Stringints="1,2,3";我想把它转换成一个整数列表:ListintList我可以通过这种方式将其转换为字符串列表:Listlist=Stream.of("1,2,3").collect(Collectors.toList());但不是整数列表。有什么想法吗? 最佳答案 您需要拆分字符串并从每个部分创建一个Stream。方法splitAsStream(input)正是这样做的:Patternpattern=Pattern.compile(",");Listlist=pattern.splitAsStrea

java - Java 8 会在使用 Stream "filter"和 "collect"后创建一个新的 List 吗?

我有使用Java8的代码:Listlist=newArrayList();list.add(3);list.add(5);list.add(4);list.add(2);list.add(5);list=list.stream().filter(i->i>=3).collect(Collectors.toList());原始列表是[3,5,4,2,5]。经过“filter”和“collect”操作后,列表变为[3,5,4,5]。是否所有操作都在原始列表上执行并且不创建新列表?或者在“过滤”和“收集”操作之后,返回一个新创建的列表并忽略原始列表? 最佳答案