我正在制作一个项目的数组列表并偶尔更改其内容。问题是从数组列表中删除一个项目后,项目序列变为失败,数组列表失去了它的排序。我搜索了很多但是没有任何想法如何在从中删除项目后保持数组列表排序。这是我正在使用的代码:
ArrayList<String> m_namesOfContactsArrayList = new ArrayList<String>();
for(int i = 0;i < 100;i++)
m_namesOfContactsArrayList.add(i);
这是我删除项目的地方:
m_namesOfContactsArrayList.remove(3);
m_namesOfContactsArrayList.remove(4);
m_namesOfContactsArrayList.remove(5);
请帮帮我。谢谢。
答案 0 :(得分:2)
删除元素不会影响元素的顺序。
只是为了在你的代码上演示它:
ArrayList m_namesOfContactsArrayList = new ArrayList();
for(int i = 0;i < 10;i++)
m_namesOfContactsArrayList.add(""+i);
System.out.println(m_namesOfContactsArrayList);
m_namesOfContactsArrayList.remove(3);
m_namesOfContactsArrayList.remove(4);
m_namesOfContactsArrayList.remove(5);
System.out.println(m_namesOfContactsArrayList);
删除前: [0,1,2,3,4,5,6,7,8,9]
删除后: [0,1,2,4,6,8,9]
这三个元素已经消失,但列表仍然是排序的。
顺便说一句,java List
旨在按插入顺序排序。如果您想按某些特定条件订购元素,可以使用例如一个SortedSet
,例如TreeSet