Tag: 列表

List.toArray(T )的奇数generics行为

我遇到了一些非常基本但今天非常困惑的事情。 我需要将列表转换为数组。 该列表包含String实例。 使用List.toArray(T[])完美示例,因为我想要一个String[]实例。 但是,如果没有将结果显式地转换为String[] ,它将无法工作。 作为测试场景,我使用了以下代码: import java.util.Arrays; import java.util.List; public class MainClass { public static void main(String args[]) { List l = Arrays.asList(“a”, “b”, “c”); String stuff[] = l.toArray(new String[0]); System.err.println(Arrays.asList(stuff)); } } 哪个不编译。 它几乎是javadoc中示例的精确副本,但编译器说明如下: MainClass.java:7: incompatible types found : java.lang.Object[] required: java.lang.String[] String stuff[] = l.toArray(new String[0]); ^ 如果我向String[]添加一个强制转换,它将编译并完美运行。 但是当我查看toArray方法的签名时,这不是我所期望的: T[] toArray(T[] […]

使用Arrays.asList()初始化List 的最佳方法是什么

我使用下面的代码。 两者都在我的应用程序中工作正常。 情况1。 List coreModules = new ArrayList(Arrays.asList( “TOOLBAR_TO_DO_LIST”, “TOOLBAR_PROPERTY”, “TOOLBAR_PEOPLE”, “TOOLBAR_INSURANCE”, “TOOLBAR_BATCH”, “TOOLBAR_INFORMATION_REFERENCE”, “TOOLBAR_LR_PROPERTY”, “TOOLBAR_CASE_FOLDER”, “TOOLBAR_INSPECTION_RESULT”, “TOOLBAR_MY_OFFICE”)); 案例2。 List coreModules = Arrays.asList( “TOOLBAR_TO_DO_LIST”, “TOOLBAR_PROPERTY”, “TOOLBAR_PEOPLE”, “TOOLBAR_INSURANCE”, “TOOLBAR_BATCH”, “TOOLBAR_INFORMATION_REFERENCE”, “TOOLBAR_LR_PROPERTY”, “TOOLBAR_CASE_FOLDER”, “TOOLBAR_INSPECTION_RESULT”, “TOOLBAR_MY_OFFICE”); 但我有一些问题: 哪一个在性能方面更好? 在哪种情况下更喜欢案例2? 阅读更多: http : //java91.blogspot.in/2017/01/what-is-best-way-of-using-arraysaslist.html

如何用O(1)空间和O(n)时间反转列表?

我正在寻找一种方法来反转给定列表的相同实例,具有O(1)额外空间和O(n)时间。 这不是硬件,也不是我正在寻找一些图书馆方法为我做这项工作,因为这只是我自己的练习,而且出于纯粹的好奇心。 任何想法如何使用O(1)额外的空间和O(n)时间? (如果可能的话,没有反思)? 签名是public void reverse(List list) 。 (*)假设列表的头部和尾部的get()是O(1),但是它的中间是O(n)。 我提出了一个递归解决方案,但它是O(n)空间,O(n)时间 public void reverseAux(List list,int size) { if (size == 0) return; T elem = list.remove(size-1); reverseAux(list,size-1); list.add(0,elem); } public void reverse(List list) { reverseAux(list, list.size()); } 编辑:我正在寻找一个java解决方案,对于List ,只有实现的假设是头部和尾部的访问时间O(1),并使用List接口。

字符串列表的比较器

我是Java的新手:) 我有2个字符串列表,我想知道什么是比较两者的最有效方法,并有一个结果数组,其中包含不在另一个中的字符串。 例如,我有一个名为oldStrings的列表和一个名为Strings的列表。 我已经看过Comparator函数但是没有完全理解它是如何工作的,现在我想我可以创建一个for循环,循环遍历每个字符串然后保存该字符串: for (final String str : oldStrings) { if(!strings.contains(str)) { getLogger().info(str + ” is not in strings list “); } } 此列表中最多可包含200个字符串。 这会是最好的方法吗? 谢谢!

具有相同值的项目列表

我正在创建一个文件列表 BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(“H:/temp/data.csv”))); try { List items = new ArrayList(); Item item = new Item(); String line = null; while ((line = reader.readLine()) != null) { String[] split = line.split(“,”); item.name = split[0]; item.quantity = Integer.valueOf(split[1]); item.price = Double.valueOf(split[2]); item.total = item.quantity * item.price; items.add(item); } for (Item item2 […]

从列表java获取包含子列表的索引

我有字符串列表如下所示: List parentDataList: {“this”, “is”, “a”, “test”, “string”, “and”, “a”, “test”, “other”} List child1: {“a”, “test”} List child2: {“this”, “string”} List child3: {“is”, “a”, “test”} 我的期望是我想检查父列表是否包含序列子列表,然后在子列表的父列表中获取开始和结束索引。 从上面的例子: Parent contain child1 list, and return the indexes: [2 – 3] and [6 – 7] Parent doesn’t contain child2 list because it isn’t sequential. Parent contain child3 list, […]

为什么整数的自动装箱和拆箱不能与Java中的Arrays.asList一起使用?

以下是抛出compile error : int[] arrs = {1,2,4,3,5,6}; List arry = Arrays.asList(arrs); 但这有效: for (Integer i : arrs){ //do something } 自动装箱在很多情况下工作,我刚才给出了一个for-loop例子。 但它在我在Arrays.asList()中Arrays.asList()的List-view中失败。 为什么这会失败?为什么选择设计实现?

列表清单

我是Java的新手,我需要列出一系列列表。 我可以在python中做到这一点,因为列表的元素可以是一个列表,因此在嵌入列表list[0]将引用一个列表, list[0][0]将引用嵌入列表的zeroeth元素。 有没有简单的方法在java中实现这种行为?

在Java中将List 转换为String

我需要从List转换为String[] 。 我做了: List lst … String arr = lst.toString(); 但我得到了这个字符串: [“…”, “…”, “…”] 只是一个字符串,但我需要String [] 非常感谢。

找到组合,给定n个带有x个球的框

我正在开发一个项目,其中我有三个盒子(截至目前),每个盒子都有一些颜色的球 所以我将它们存储在Map of String and List of String ,如下所示。 Map<String, List> boxBallMap = new LinkedHashMap<String, List>(); 上面地图中的数据可以是这样的 – {box1=[blue, red, orange]} {box2=[blue, red]} {box3=[blue, red, orange]} 因此,盒子中球的可能组合可以是 – (要点A) ::所有具有相同球数的盒子 – {box1=[blue, red, orange]} {box2=[blue, red, orange]} {box3=[blue, red, orange]} or (要点B) ::任何一个盒子都没有球。 所以让我们说box3没有任何球 – {box1=[blue, red, orange]} {box2=[blue, red, orange]} {box3=[]} or (要点C) ::有些盒子的球数较少。 […]