Java 检查数组列表并删除一些参数

Java 检查数组列表并删除一些参数,java,android,Java,Android,我有一个字符串数组列表。我想在特定时刻检查这个数组中我是否有比我的“I”更多的元素,如果是,我想删除这些元素。例如数组中有五个元素。我选择索引为4的元素。我想检查是否存在较高的元素(在这种情况下,较高的元素将是索引为5的元素),并删除该元素。如果我选择3个元素,我想删除4和5个元素。我会这样做: for(int j = 0; j<descriptions.size();j++){ if(!descriptions.get(i+1).i

我有一个字符串数组列表。我想在特定时刻检查这个数组中我是否有比我的“I”更多的元素,如果是,我想删除这些元素。例如数组中有五个元素。我选择索引为4的元素。我想检查是否存在较高的元素(在这种情况下,较高的元素将是索引为5的元素),并删除该元素。如果我选择3个元素,我想删除4和5个元素。我会这样做:

            for(int j = 0; j<descriptions.size();j++){
                if(!descriptions.get(i+1).isEmpty()){
                    descriptions.remove(i+1);
                }
            }
for(int j=0;j
数组中有五个元素。我选择索引为四的元素

第五个元素位于索引4。如果要选择第四个元素,其索引将为3

按以下方式修改您的代码:

int size = descriptions.size();
for(int j = size -1; j>choosenNum; j--) 
{
    descriptions.remove(j);
}
或者,请遵循ArrayList:

if(descriptions.size() - 1 > indexToDeleteAfter)
{
   descriptions.removeRange(indexToDeleteAfter + 1, descriptions.size() - 1);
}

我不太明白在代码中使用for循环的意义

您可能要做的是删除列表中第i个元素之外的任何项目

最简单的方法是重复从列表中删除最后一个元素

以下是供参考的示例代码:

while(descriptions.size() > i){
  descriptions.remove(descriptions.size()-1);
}
publicstaticvoidmain(字符串[]args){
//包含5个元素的字符串列表
列表描述=新建ArrayList();
说明。添加(“第一”);
说明。添加(“第二”);
说明。添加(“第三”);
说明。添加(“4”);
说明。添加(“5”);
//要检查列表的大小
int i=3;
int howMuchToRemove=descriptions.size()-i;
//如果列表中显示了如何从>i中删除更多对象,我们将从中删除对象
如果(如何删除>0)
对于(int j=0;j
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
列表。添加(“a”);
列表。添加(“a”);
列表。添加(“a”);
列表。添加(“a”);
列表。添加(“a”);
indexToRemove(列表,5);
}
私有静态void indexToRemove(ArrayList列表,int索引){
if(list.size()>索引){
列表。删除(索引);
系统输出打印项次(索引+删除的第项);
}否则
System.out.println(“无法删除”);
}

您是指一个将删除给定索引元素的函数吗?然后尝试此操作。

您不能从i+1重新加载,因为您从0@Nirav:首先,他不能删除
i+1
,因为计数器名为
j
:)此解决方案不会删除任何元素。现在检查一下。我在for循环条件中使用了
size
而不是
choosenNum
while(descriptions.size() > i){
  descriptions.remove(descriptions.size()-1);
}
 public static void main(String[] args) {

 //list of string with 5 elements
 List<String> descriptions = new ArrayList<String>();
 descriptions.add("first");
 descriptions.add("second");
 descriptions.add("third");
 descriptions.add("4");
 descriptions.add("5");

 //the size you want to check for the list
 int i = 3;
 int howMuchToRemove = descriptions.size()-i;
 //if the list how more object from > i , we will remove objects from it 
 if (howMuchToRemove > 0)
     for (int j=0 ; j < howMuchToRemove ; j++)
         //remove the last object in the list
         descriptions.remove(descriptions.size()-1);

 System.out.println(descriptions.toString());
}
 public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("a");
    list.add("a");
    list.add("a");
    list.add("a");
    list.add("a");
    indexToRemove(list, 5);

}

private static void indexToRemove(ArrayList<String> list, int index) {
    if (list.size() > index) {
        list.remove(index);
        System.out.println(index + "th item removed");
    } else
        System.out.println("Can't remove");

}