Tag: arraylist

为什么处理sorting数组*比未sorting数组慢? (Java的ArrayList.indexOf)

标题是在为什么处理sorting的数组比未sorting的数组更快? 这也是分支预测效果吗? 注意:这里sorting后的数组处理速度较慢 ! 考虑下面的代码: private static final int LIST_LENGTH = 1000 * 1000; private static final long SLOW_ITERATION_MILLIS = 1000L * 10L; @Test public void testBinarySearch() { Random r = new Random(0); List<Double> list = new ArrayList<>(LIST_LENGTH); for (int i = 0; i < LIST_LENGTH; i++) { list.add(r.nextDouble()); } //Collections.sort(list); // remove possible artifacts […]

Java数组如何在开始时添加元素

我需要将元素添加到ArrayList队列中,但是当我调用函数来添加元素时,我希望它在数组的开头添加元素(因此它具有最低的索引),并且如果数组有10个元素添加删除最旧元素(索引最高的元素)的新结果。 有没有人有什么build议?

如何更新ArrayList中某个位置的元素?

我有一个10个stringArrayList。 如何用另一个string值更新索引5 。

如何找出每个对象在ArrayList <Object>中的types?

我有一个ArrayList由从db导入的不同元素组成,由string,数字,双精度和整数组成。 有没有办法使用reflectiontypes技术来找出每个元素的每种types的数据? 仅供参考:有这么多types的数据的原因是,这是一个Java代码被写入用不同的数据库来实现。

为什么Java的AbstractList的removeRange()方法受到保护?

有没有人有任何想法, 为什么在AbstractList (以及在ArrayList中 )removeRange方法是protected ? 它看起来像一个相当明确和有用的操作,但仍然使用它,我们被迫inheritanceList实现。 有一些隐藏的理由吗? 看来对我来说莫名其妙。

Java List.add()UnsupportedOperationException

我尝试添加对象到一个List<String>实例,但它抛出一个UnsupportedOperationException 。 有谁知道为什么? 我的Java代码: String[] membersArray = request.getParameterValues('members'); List<String> membersList = Arrays.asList(membersArray); for (String member : membersList) { Person person = Dao.findByName(member); List<String> seeAlso; seeAlso = person.getSeeAlso(); if (!seeAlso.contains(groupDn)){ seeAlso.add(groupDn); person.setSeeAlso(seeAlso); } } 错误消息: java.lang.UnsupportedOperationException java.util.AbstractList.add(Unknown Source) java.util.AbstractList.add(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

如何在迭代和从ArrayList中移除元素时避免java.util.ConcurrentModificationException

我有一个ArrayList,我想迭代。 在迭代时,我必须同时删除元素。 显然这引发了一个java.util.ConcurrentModificationException 。 处理这个问题的最佳做法是什么? 我应该首先克隆列表吗? 我删除不在循环中的元素,而是代码的另一部分。 我的代码如下所示: public class Test() { private ArrayList<A> abc = new ArrayList<A>(); public void doStuff() { for (A a : abc) a.doSomething(); } public void removeA(A a) { abc.remove(a); } } a.do可能会调用Test.removeA();

在指定的索引处将对象添加到ArrayList

我认为这是一个相当简单的问题,但我不知道如何正确地做到这一点。 我有一个空的数组列表: ArrayList<object> list = new ArrayList<object>(); 我想要添加一些对象,每个对象都必须位于某个位置。 但是,必须按照可能的顺序添加。 当我尝试这个,它不起作用,我得到一个IndexOutOfBoundsException : list.add(1, object1) list.add(3, object3) list.add(2, object2) 我所尝试的是填充ArrayList的null ,然后执行上述操作。 它有效,但我认为这是一个可怕的解决scheme。 有没有另外一种方法来做到这一点?

ArrayIndexOutOfBoundsException在使用ArrayList的迭代器时

现在,我有一个包含一段代码的程序,如下所示: while (arrayList.iterator().hasNext()) { //value is equal to a String value if( arrayList.iterator().next().equals(value)) { // do something } } 我是否正确地做,只要迭代通过ArrayList去? 我得到的错误是: java.lang.ArrayIndexOutOfBoundsException: -1 at java.util.ArrayList.get(Unknown Source) at main1.endElement(main1.java:244) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) […]

如何查找数组列表的长度?

我不知道如何查找数组列表的长度。 我想你可能需要使用blank.length(); 但我不确定。 我做了一个数组列表 ArrayList<String> myList = new ArrayList<String>(); 但是如何编写代码来打印myList的大小呢?