jjzjj

Arraylist

全部标签

Java 8 类型推断 - 如何减少泛型构造函数?

我正在阅读java8语言规范类型推断。据说Listls=newArrayList()会先减少ArrayList->List然后到α最后到α=String我很难理解如何减少约束ArrayList->Listtoα是派生的。如果有人可以使用java8语言规范指出逻辑,那将是一个很大的帮助。Here's减少的链接谢谢#Holger为了解释。以下是我对推导的看法newArrayList->ListtoArrayList->List如有错误请指正首先找到我们使用的构造函数的临时方法#15.9.3Otherwise,theargumentstotheconstructoraretheargumen

java - 从类中调用对象的方法与从方法中调用方法

这可能是一个非常初级的问题,但在我学习Java的这个阶段,它让我感到困惑。我得到了以下代码:packagecom.soti84;importjava.util.ArrayList;publicclassInvokeMethod{publicstaticvoidmain(String[]args){ArrayListexams=newArrayList();exams.add("Java");exams.add("C#");}}如果我将实例化ArrayList对象的行和对该对象的调用移到方法之外,则创建该对象的行没问题,但不允许对该对象调用add()方法。这是为什么?packagecom

Java 并发 : lock effiency

我的程序有100个线程。每个线程都这样做:1)如果arrayList为空,则向其添加具有特定属性的元素2)如果arrayList不为空,遍历arrayList中找到的元素,如果找到合适的元素(匹配某些属性),获取并移除arrayList这里的问题是,当一个线程遍历arrayList时,其他99个线程正在等待arrayList上的锁。如果我希望所有100个线程都在无锁条件下工作,您会给我什么建议?所以他们都有工作要做?谢谢 最佳答案 你看过sharedvsexclusive了吗?锁定?您可以在列表上使用共享锁,然后在列表元素上使用“已

java - 测量时间并不能证实 LinkedList 的优势

我正在阅读WhentouseLinkedListoverArrayList?中指出的ArrayList和LinkedList之间的区别.我开发了一个小示例应用程序来测试LinkedList的主要优势,但我获得的结果并没有证实,即LinkedList在性能上胜过ArrayList操作:ListIterator.add(Eelement)这是我的代码:publicstaticvoidmain(String[]args){intnumber=100000;longstartTime1=System.currentTimeMillis();fillLinkedList(number);long

java - 如何使用迭代器遍历二维 ArrayList?

我想遍历二维ArrayList,其中包括使用迭代器的String对象。我还想以一种让我选择是先水平(行)迭代还是垂直(列)迭代的方式进行迭代,方法是使用boolean值。我如何在Java中实现它?到目前为止我尝试了什么。publicclassIterateThisimplementsIterator{ArrayList>array;publicIterateThis(){array=newArrayList>();array.add(newArrayList());array.add(newArrayList());array.add(newArrayList());array.get

java - 拆分字符串并存储在数组列表中

我想拆分下面提到的字符串并将其保存在两个单独的数组列表中,例如state和citypublicclassRoundValue{publicstaticvoidmain(Stringargs[]){Stringfirstset=null;Stringcity="Tamilnadu;chennai-madurai-salem::Kerala;cochin-tiruvandrum-calicut";ArrayListmState=newArrayList();ArrayListmCity=newArrayList();HashMap>hashsplit=newHashMap>();Lists

java - 在 java 中使用 ArrayList 时的深拷贝

我知道这是一件小事,但我想问这个问题。假设我有一个返回对象ArrayList的get方法。首先我们必须返回它的副本吗?如果是这样,它是否必须是ArrayList的深拷贝?当里面的对象不可变时,我们还需要做深拷贝吗?如果我们使用这种类型的构造函数ArrayListarr=newArrayList(collection);那么数组的元素是被复制还是仍然指向旧值?谢谢 最佳答案 这取决于您的用例。有时需要公开底层集合,有时则不然。例如,如果您想要为您的类利用集合方法,您可以返回基础集合(或基础集合的可修改View)。这使您类(class)

java - 是否有一种 Java 数据结构实际上是具有双索引和内置插值的 ArrayList?

我正在寻找具有以下特征的预构建Java数据结构:它应该看起来像ArrayList,但应该允许通过double而不是整数进行索引。请注意,这意味着您可能会看到与原始数据点不一致的指标(即,要求对应于键“1.5”的值)。编辑:为清楚起见,根据评论,我不打算更改ArrayList实现。我正在寻找类似的界面和开发人员体验。因此,返回的值可能会被插值。例如,如果键为1.5,则返回的值可能是键1.0处的值和键2.0处的值的平均值。将对键进行排序,但不能确保值单调递增。事实上,无法保证值的一阶导数是连续的(使其不适合某些类型的样条曲线)。请免费提供代码。为了清楚起见,我知道如何写这样的东西。事实上,

java - 为什么典型的 Array List 实现不是双端的?

为什么ArrayList通常不实现为双端的,这将支持在前面和后面的快速分摊插入?使用后者比使用前者有缺点吗?(我不只是在谈论Java——我还没有看到双端数组列表是任何其他语言的默认设置,但Java在这里只是一个很好的例子。)*编辑:我最初称它们为“arraydeques”,但这是我的误解;我不是在谈论队列,而是双端数组列表。 最佳答案 ArrayList很简单;条目从0开始,您可以在末尾添加内容(这可能会延长数组),但列表中的条目#X始终是backing_array[X]。ArrayDeque会更复杂;除了必须跟踪序列的开始(因为它

java - LinkedList 和 ArrayList 实现的区别?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhentouseLinkedListoverArrayList?我看到了ArrayList和LinkedList的API,它们似乎是一样的。除了它们的性能差异外,在添加、删除和迭代列表方面也有任何差异。ListarrList=newArrayList();ListlinList=newLinkedList();ListarrList或linList引用实际上是在实现相应的类。这到底是什么意思?