当前位置:  开发笔记 > 编程语言 > 正文

允许使用空白的Java列表

如何解决《允许使用空白的Java列表》经验,为你挑选了1个好方法。

这可能非常简单,但我真的无法在谷歌上正确说出来.我有一个ArrayList来保存每个线程的信息.每个线程都有自己的ID.所以,在开始时:

myList.add(theIdOfTheThread, new InfoForTheThread()); //Add new thread info at index theIdOfTheThread

当我想要信息时:

myList.get(myId); //The info for the thread

但是,每当较低的线程完成并删除它的条目等时,我总是得到OutOfRangeExceptions.所以,我确信必须有一个更好的类来使用它,我可以把条目放在我想要的任何索引,并拉它们在我想要的任何指数,他们留下来.



1> banjollity..:

对于那种访问,你应该使用一个数组,或者更好的是一个HashMap.使用列表是非常低效和不必要的复杂.如果你从列表中间删除一个项目,一切都会向下移动,而你删除的那个上面的所有索引都需要向下移动.

InfoForTheThread数组不会受此影响,但您需要在开始之前知道所需的数组大小.

使用HashMap - 您可以使用Integers作为键,并且删除不会导致重新排序.

HashMap myInfos = new HashMap( 10 );

添加,检索和删除条目:

myInfos.put( Integer.valueOf( 4 ), new InfoForTheThread() );
InfoForTheThread infoForFour = myInfos.get( Integer.valueOf( 4 ) );
InfoForTheThread infoForFour = myInfos.remove( Integer.valueOf( 4 ) );

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有