programing

ArrayList에 값이 있는지 확인합니다.

prostudy 2022. 6. 22. 21:41
반응형

ArrayList에 값이 있는지 확인합니다.

스캐너에 입력된 값이 다음 중 하나에 존재하는지 확인하려면 어떻게 해야 합니까?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();

ArrayList.contains(desiredElement)사용합니다.예를 들어 예제에서 conta1 계정을 찾는 경우 다음과 같은 방법을 사용할 수 있습니다.

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

Edit: 이 기능이 작동하려면 equals() 메서드와 hashCode() 메서드를 적절히 덮어써야 합니다.Eclipse IDE를 사용하는 경우, 먼저 다음 방법을 위해 소스 파일을 열어서 생성할 수 있습니다.CurrentAccount오브젝트 및 선택Source > Generate hashCode() and equals()...

를 사용하는 것이 좋다.HashSet보다ArrayList값이 존재하는지 확인할 때 사용합니다.Java 문서:HashSet다음과 같이 말합니다."This class offers constant time performance for the basic operations (add, remove, contains and size)"

ArrayList.contains()는, 찾고 있는 인스턴스를 찾기 위해서, 리스트 전체를 반복할 필요가 있는 경우가 있습니다.

투고에 대한 제 답변을 참조해 주세요.

에 대해 반복할 필요는 없습니다.List덮어쓰기만 하면 됩니다.equals방법.

사용하다equals대신==

@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;
}

이렇게 불러주세요.

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));

}

사용할 수 있습니다.contains아이템이 존재하는지 여부를 확인하는 방법equals그리고.hashCode그렇지 않으면 객체 참조가 동등 비교에 사용됩니다.리스트의 경우도containsO(n)있는 그대로의 조작O(1)위해서HashSet나중에 사용하는 것이 좋습니다.Java 8에서는 스트림을 사용하여 동일성 또는 특정 속성에 따라 항목을 확인할 수도 있습니다.

자바 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

그냥 사용하다.contains예를 들어 ArrayList가 있는지 여부를 체크하는 경우arr값을 포함합니다.val, 단순하게 실행한다.arr.contains(val)값이 포함되어 있는지 여부를 나타내는 부울이 반환됩니다.상세한 것에 대하여는, 다음의 문서를 참조해 주세요..contains.

배열 목록에 Primitive DataType 개체가 포함된 경우.

Use this function:
arrayList.contains(value);

if list contains that value then it will return true else false.

배열 목록에 UserDefined DataType 개체가 포함된 경우.

Follow this below Link 

Array List 내의 객체 속성을 비교하는 방법

이 솔루션이 도움이 되기를 바랍니다.고마워요.

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");         
        }
    } 
}

아래 코드가 도움이 됩니다.

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

Array List에 이미 같은 이름이 있으므로 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);
    }
}

언급URL : https://stackoverflow.com/questions/4404084/check-if-a-value-exists-in-arraylist

반응형