Check if a value exists in ArrayList

后端 未结 7 2536
长发绾君心
长发绾君心 2020-11-27 13:37

How can I check if a value that is written in scanner exists in an ArrayList?

List lista = new ArrayList

        
相关标签:
7条回答
  • 2020-11-27 13:49

    Please refer to my answer on this post.

    There is no need to iterate over the List just overwrite the equals method.

    Use equals instead of ==

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

    Call it like this:

    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));
    
    }
    
    0 讨论(0)
  • 2020-11-27 13:59

    Better to use a HashSet than an ArrayList when you are checking for existence of a value. Java docs for HashSet says: "This class offers constant time performance for the basic operations (add, remove, contains and size)"

    ArrayList.contains() might have to iterate the whole list to find the instance you are looking for.

    0 讨论(0)
  • 2020-11-27 14:00

    Just use ArrayList.contains(desiredElement). For example, if you're looking for the conta1 account from your example, you could use something like:

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

    Edit: Note that in order for this to work, you will need to properly override the equals() and hashCode() methods. If you are using Eclipse IDE, then you can have these methods generated by first opening the source file for your CurrentAccount object and the selecting Source > Generate hashCode() and equals()...

    0 讨论(0)
  • 2020-11-27 14:02

    When Array List contains object of Primitive DataType.

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

    When Array List contains object of UserDefined DataType.

    Follow this below Link 
    

    How to compare Objects attributes in an ArrayList?

    I hope this solution will help you. Thanks

    0 讨论(0)
  • 2020-11-27 14:06

    We can use contains method to check if an item exists if we have provided the implementation of equals and hashCode else object reference will be used for equality comparison. Also in case of a list contains is O(n) operation where as it is O(1) for HashSet so better to use later. In Java 8 we can use streams also to check item based on its equality or based on a specific property.

    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
    
    0 讨论(0)
  • 2020-11-27 14:13
    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");         
            }
        } 
    }
    
    0 讨论(0)
提交回复
热议问题