我想将新添加的元素的索引转换为arraylist。例如
List listA = new ArrayList();
// Lots of code adding and removing things from `listA`, imagine `listA` now
// contains approx 10,000 records
listA.add("element 0");
如何查找新添加项目的索引?
我想也许,我需要一个不同的数据结构,但不能想到要使用什么。
答案 0 :(得分:7)
添加到列表中的第一个元素将具有索引0
添加的最后一个元素将具有索引listA.size()-1
但是,您应该注意,如果从列表中删除元素,则某些索引(索引具有比删除元素更高的索引)将会更改。例如,如果删除第n个元素,则前一个(第n + 1)个元素将成为第n个元素。
感谢talex发表评论。我忘记了indexOf()
,它返回所提供元素的索引(如果在列表中找到该元素)。但是,这需要线性搜索时间。
如果您希望将列表的索引视为查找列表中存储的值的键,那么最好使用HashMap<Integer,String>
。
答案 1 :(得分:1)
索引将为size()
,只需在添加之前获取:
List listA = new ArrayList();
...
int index = listA.size();
listA.add("element 0"); // "element 0" will be at the "index" item
答案 2 :(得分:1)
您可以使用indexOf
方法检索列表中任何元素的索引:
List<String> listA = new ArrayList<String>();
//Lots of code adding and removing things from listA, imagine listA now contains approx 10,000 records
String str = "element 0"
listA.add(str);
int index = listA.indexOf(str)
如果你只关心最后一个元素的索引,那么javadoc列表会说:“add(E e) 将指定的元素追加到此列表的末尾(可选操作)。“
所以你可以使用:
List<String> listA = new ArrayList<String>();
//Lots of code adding and removing things from listA, imagine listA now contains approx 10,000 records
listA.add("element 0");
int index = listA.size()-1 //minus 1 because index start at 0
你似乎担心按索引访问元素(标识符?),你应该看看Map:
Map<int, String> mymap = new HashMap<int, String>();
mymap.add(1, "element1");
mymap.add(2, "element2");
mymap.add(3, "element3");
mymap.get(3);//return "element3"
答案 3 :(得分:0)
List listA = new ArrayList();
String a = "element 0";
listA.add(a);
int index = listA.indexOf(a);
你去了
答案 4 :(得分:0)
如果使用add(element)
,则会保留订单,因此列表中的最后一个元素将是最近添加的元素。
所以你可以使用listA.get(listA.size-1);
如果您使用的是add(index,element)
,则不会出现这种情况,因为订单未被保留。
请点击此处查看相关问题How to get the last value of an ArrayList
答案 5 :(得分:0)
List
的索引以0
开头,以size()-1
结尾。
如果计算元素数量,它将与size()-1
相同。
例如,如果您的列表包含100条记录,则最后一个元素的索引将为size()-1
,即99。
List listA = new ArrayList();
int lastIndex=listA.size()-1;
答案 6 :(得分:0)
与其他建议不同.... size()
给出List
的总大小,因为List
索引为零,所以size() - 1
给出了最后一个的索引元素列表。
不要将; ast元素混淆为刚刚添加的元素。只要我们使用add()
方法,新元素最后会附加到列表中,但list也有另一个add方法,它将索引作为参数。使用此方法,您可以在列表中的任何位置添加新元素。在这种情况下,size() - 1
不会为您提供最新添加元素的索引。