草庐IT

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 - 为什么Java的sort实现在排序之前先将列表转换为数组?

在JDK1.8中,java.util.List#sort(Comparator)方法的第一条语句如下:Object[]a=this.toArray();将列表复制到数组中、对其进行排序并将列表的每个节点重置为数组中排序后的值的代价很高。在对ArrayList进行排序时,似乎可以不将值复制到临时数组。我对吗?如果不是,是什么指导了该方法的创建者? 最佳答案 java.util.List接口(interface)中的sort只是列表排序的默认实现。ArrayList使用排序方法覆盖此默认值,该方法直接对其内部数组进行排序。

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

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

java - 在包含字符串的 ArrayList 中查找索引

通过使用Jsoup,我从网站解析HTML以使用我需要从网站获取的内容填充ArrayList。所以现在我有一个用字符串填充的ArrayList。我想在该列表中找到包含特定字符串的索引。例如,我知道列表中某处的某个索引中有字符串(文字)“Claude”,但我似乎无法编写任何代码来找到包含“Claude”的索引"在ArrayList中...这是我尝试过但返回-1(未找到)的方法:ArrayListlist=newArrayList();Stringclaude="Claude";Documentdoc=null;try{doc=Jsoup.connect("http://espn.go.co

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 - 二元运算符的错误操作数类型 '%'

这个问题在这里已经有了答案:Arrays.stream(array)vsArrays.asList(array).stream()(3个答案)关闭5年前。我正在尝试用Java8的方式编写代码:publicstaticvoidmain(String[]args)throwsjava.lang.Exception{intarr[]={3,4,5,6,7};Arrays.asList(arr).stream().filter(i->i%2).sorted().map(j->j+1).forEach(System.out::println);}filter应该几乎丢弃奇数,但我收到以下错误。M

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

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

Java - 混合数组列表?

是否可以在ArrayList中存储混合的对象类型?如果是怎么办?这是我目前尝试过的:Listlist=newArrayList();list.add(newString("HelloWorld"));list.add(newInteger(1));list.add(newLong(1l));for(i=0;i但是它会抛出一个转换异常。在此先感谢您的任何意见! 最佳答案 这是你应该拥有的:Listlist=newArrayList();list.add(newString("HelloWorld"));list.add(newInte