Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList以1开头,不是0?_Java_Arraylist - Fatal编程技术网

Java ArrayList以1开头,不是0?

Java ArrayList以1开头,不是0?,java,arraylist,Java,Arraylist,我正在用ff代码从DB检索一些数据: List<modelA> list= new ArrayList<modelA>(); list = modelA.getList(parameter); list.size()=3和list[0]不存在 我将列表转移到LinkedHashSet以正确设置索引,但它不起作用。名单还是一样 Set<modelA> hs = new LinkedHashSet<>(); hs.addAll(list); list

我正在用
ff
代码从
DB
检索一些数据:

List<modelA> list= new ArrayList<modelA>();
list = modelA.getList(parameter);
list.size()=3
list[0]
不存在

我将列表转移到LinkedHashSet以正确设置索引,但它不起作用。名单还是一样

Set<modelA> hs = new LinkedHashSet<>();
hs.addAll(list);
list.clear();
list.addAll(hs);
modelA类中的方法getList返回一个生成的列表。它构建列表的方式可以是任何东西。它甚至可以在99位启动


因此,您需要检查/修复对象如何放置在modelA类的列表中。

似乎
getList
方法返回一个违反API的
list
实现(假设列表是java.util.list)。的api指定,如果
index==List.size()
,则所有列表实现都应引发IndexOutOfBoundsException。 您可以创建您选择的特定类型的列表(例如ArrayList),并将断开列表的内容放入您创建的列表中:

List<modelA> list= new ArrayList<modelA>(modelA.getList(parameter));

并尝试修复断开列表类的实现。但是,如果其他地方的代码依赖于此列表实现的基于1的索引,这可能会有风险。

您确定
liste.size()
的大小是3而不是4吗?什么是modelA.getList?返回的列表实现可能使用基于非零的索引,但
List[0]
的值是多少
null
?发布更多有助于解决问题的代码。大小为3,没有索引0。modelA.getList是一个JPA模型是否无法使用java修复列表,因为我不允许接触该模型?因此,您唯一的可能性是在使用列表之前删除第一个元素。尽管如此,这似乎不是一个真正的问题。请注意不要使用列表的第一个元素。
java.lang.NullPointerException
    at applicationmodels.f08.pv.F08PV008Model.search(F08PV008Model.java:221)
    at controllers.f08.pv.F08PV008.control(F08PV008.java:148)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$99$$anonfun$apply$99.apply(routes_routing.scala:1510)
    at Routes$$anonfun$routes$1$$anonfun$applyOrElse$99$$anonfun$apply$99.apply(routes_routing.scala:1510)
    at play.core.Router$HandlerInvoker$$anon$7$$anon$2.invocation(Router.scala:183)
    at play.core.Router$Routes$$anon$1.invocation(Router.scala:377)
    at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:56)
    at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:20)
    at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:18)
    at play.db.jpa.JPA.withTransactionAsync(JPA.java:177)
    at play.db.jpa.TransactionalAction.call(TransactionalAction.java:15)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:91)
    at play.core.j.JavaAction$$anon$3.apply(JavaAction.scala:90)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at play.core.j.FPromiseHelper$$anonfun$flatMap$1.apply(FPromiseHelper.scala:82)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)
    at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249)
    at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
    at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:37)
    at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:42)
    at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
list = modelA.getList(parameter);
List<modelA> list= new ArrayList<modelA>(modelA.getList(parameter));
System.out.println(modelA.getList(parameter).getClass().getName());