仅当arraylist尚不存在时才将其添加到arraylist中

时间:2016-10-22 02:51:09

标签: android arraylist

position等于显示哪个问题。我想在一个arraylist中添加一个等于position的int。然后我想检查并查看该arraylist是否在其中包含该int以防止再次添加该int。使用以下代码,它会多次添加position int。

if(correctQuestions.size() == 0){
        correctQuestions.add(position);
    }else if(correctQuestions.size() > 0){
        if(!Arrays.asList(correctQuestions).contains(position)){
            correctQuestions.add(position);
        }
    }

如果position = 0;,那么每次运行此代码都会不断向我的arraylist添加position,无论其中是否包含0。例如,运行此代码3次将导致我的arraylist输出[0,0,0]时它应该只允许它添加0次。

4 个答案:

答案 0 :(得分:0)

你必须这样写:

{
    "Version": "2008-10-17",
    "Id": "Backup-Assets",
    "Statement": [
        {
            "Sid": "Allow PUT from Account-A Lambda function",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::ACCOUNT-A-NUMBER-HERE:root"
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::backup-assets.myapp.com",
                "arn:aws:s3:::backup-assets.myapp.com/*"
            ]
        }
    ]
}

答案 1 :(得分:0)

试试这个:

if(correctQuestions.indexOf(position) < 0) {//this will return -1 if object not found in the arraylist
    correctQuestions.add(position);
}

答案 2 :(得分:0)

您的Arraylist的最大索引会将其视为变量 size 。 所以你可以编写条件逻辑:

if(size!=0 && position < size ){
    correctQuestions.add(position);
}

答案 3 :(得分:0)

方法arrayList.size()返回列表中的项目数 - 因此,如果索引大于或等于size(),则它不存在。

if(correctQuestions.size() > position){

        correctQuestions.add(position);

}

if you want to check if position already present in arraylist if `correctQuestions.get( index );` in try block shows that if no key present it will throw in catch

try {
    correctQuestions.get( index );
} catch ( IndexOutOfBoundsException e ) {
    correctQuestions.add( index, new Object() );
}