Controleer of er een waarde bestaat in ArrayList

Hoe kan ik controleren of een waarde die in de scanner is geschreven, bestaat in een ArrayList?

List<CurrentAccount> lista = new ArrayList<CurrentAccount>();
CurrentAccount conta1 = new CurrentAccount("Alberto Carlos", 1052);
CurrentAccount conta2 = new CurrentAccount("Pedro Fonseca", 30);
CurrentAccount conta3 = new CurrentAccount("Ricardo Vitor", 1534);
CurrentAccount conta4 = new CurrentAccount("João Lopes", 3135);
lista.add(conta1);
lista.add(conta2);
lista.add(conta3);
lista.add(conta4);
Collections.sort(lista);
System.out.printf("Bank Accounts:" + "%n");
Iterator<CurrentAccount> itr = lista.iterator();
while (itr.hasNext()) {
    CurrentAccount element = itr.next();
    System.out.printf(element + " " + "%n");
}
System.out.println();

Antwoord 1, autoriteit 100%

Gebruik gewoon ArrayList.bevat(desiredElement). Als u bijvoorbeeld op zoek bent naar het conta1-account uit uw voorbeeld, kunt u zoiets gebruiken als:

if (lista.contains(conta1)) {
    System.out.println("Account found");
} else {
    System.out.println("Account not found");
}

Bewerken:
Merk op dat om dit te laten werken, u de gelijk aan()en hashCode()methoden. Als u Eclipse IDE gebruikt, kunt u deze methoden laten genereren door eerst het bronbestand voor uw CurrentAccount-object te openen en Source > Generate hashCode() and equals()...


Antwoord 2, autoriteit 14%

Het is beter om een ​​HashSette gebruiken dan een ArrayListwanneer u controleert op het bestaan ​​van een waarde.
Java-documenten voor HashSetzeggen: "This class offers constant time performance for the basic operations (add, remove, contains and size)"

ArrayList.contains()moet mogelijk de hele lijst doorlopen om de instantie te vinden waarnaar u op zoek bent.


Antwoord 3, autoriteit 5%

Raadpleeg mijn antwoord op dit bericht.

Het is niet nodig om de Listte herhalen, gewoon de equals-methode overschrijven.

Gebruik equalsin plaats van ==

@Override
public boolean equals (Object object) {
    boolean result = false;
    if (object == null || object.getClass() != getClass()) {
        result = false;
    } else {
        EmployeeModel employee = (EmployeeModel) object;
        if (this.name.equals(employee.getName()) && this.designation.equals(employee.getDesignation())   && this.age == employee.getAge()) {
            result = true;
        }
    }
    return result;
}

Noem het zo:

public static void main(String args[]) {
    EmployeeModel first = new EmployeeModel("Sameer", "Developer", 25);
    EmployeeModel second = new EmployeeModel("Jon", "Manager", 30);
    EmployeeModel third = new EmployeeModel("Priyanka", "Tester", 24);
    List<EmployeeModel> employeeList = new ArrayList<EmployeeModel>();
    employeeList.add(first);
    employeeList.add(second);
    employeeList.add(third);
    EmployeeModel checkUserOne = new EmployeeModel("Sameer", "Developer", 25);
    System.out.println("Check checkUserOne is in list or not");
    System.out.println("Is checkUserOne Preasent = ? " + employeeList.contains(checkUserOne));
    EmployeeModel checkUserTwo = new EmployeeModel("Tim", "Tester", 24);
    System.out.println("Check checkUserTwo is in list or not");
    System.out.println("Is checkUserTwo Preasent = ? " + employeeList.contains(checkUserTwo));
}

Antwoord 4, autoriteit 4%

We kunnen de methode containsgebruiken om te controleren of een item bestaat als we de implementatie van equalsen hashCodehebben gegeven, anders wordt de objectreferentie gebruikt voor gelijkheidsvergelijking. Ook in het geval van een lijst die containsis O(n)operatie waar het O(1)is voor HashSetdus beter om later te gebruiken. In Java 8 kunnen we streams ook gebruiken om items te controleren op gelijkheid of op basis van een specifieke eigenschap.

Java 8

CurrentAccount conta5 = new CurrentAccount("João Lopes", 3135);
boolean itemExists = lista.stream().anyMatch(c -> c.equals(conta5)); //provided equals and hashcode overridden
System.out.println(itemExists); // true
String nameToMatch = "Ricardo Vitor";
boolean itemExistsBasedOnProp = lista.stream().map(CurrentAccount::getName).anyMatch(nameToMatch::equals);
System.out.println(itemExistsBasedOnProp); //true

Antwoord 5

Gebruik gewoon .contains. Als u bijvoorbeeld controleert of een ArrayList arreen waarde valbevat, voert u gewoon arr.contains(val)uit, wat retourneer een boolean die aangeeft of de waarde is opgenomen. Zie voor meer informatie de docsvoor .contains.


Antwoord 6

Als Array List een object van Primitive DataType bevat.

Use this function:
arrayList.contains(value);
if list contains that value then it will return true else false.

Als Array List een object van UserDefined DataType bevat.

Follow this below Link 

Hoe kan ik Objects-kenmerken in een ArrayList vergelijken?

Ik hoop dat deze oplossing je zal helpen.
Bedankt


Antwoord 7

public static void linktest()
{
    System.setProperty("webdriver.chrome.driver","C://Users//WDSI//Downloads/chromedriver.exe");
    driver=new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("http://toolsqa.wpengine.com/");
    //List<WebElement> allLinkElements=(List<WebElement>) driver.findElement(By.xpath("//a"));
    //int linkcount=allLinkElements.size();
    //System.out.println(linkcount);
    List<WebElement> link = driver.findElements(By.tagName("a"));
    String data="HOME";
    int linkcount=link.size();
    System.out.println(linkcount);
    for(int i=0;i<link.size();i++) { 
        if(link.get(i).getText().contains(data)) {
            System.out.println("true");         
        }
    } 
}

Antwoord 8

Onderstaande code kan helpen

List<CurrentAccount> lista = new ArrayList<CurrentAccount>();
CurrentAccount conta5 = new CurrentAccount("Pedro Fonseca", 500);
boolean isAdded = lista.contains(model);

ArrayList heeft al dezelfde naam, dus het retourneert true

import com.google.gson.annotations.SerializedName;    
import java.util.Objects;
public class CurrentAccount {
    @SerializedName("Name")
    private String name;
    @SerializedName("Balance")
    private int balance;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }
    public CurrentAccount(String name, int balance) {
        this.name = name;
        this.balance = balance;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        CurrentAccount model = (CurrentAccount) o;
        return name.equals(model.name);
    }
    @Override
    public int hashCode() {
        return Objects.hash(name);
    }
}

Other episodes