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
그렇지 않으면 객체 참조가 동등 비교에 사용됩니다.리스트의 경우도contains
이O(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
이 솔루션이 도움이 되기를 바랍니다.고마워요.
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
'programing' 카테고리의 다른 글
Executor Service를 사용하여 모든 스레드가 완료될 때까지 기다리는 방법 (0) | 2022.06.22 |
---|---|
vue-multicelect에 대한 쓰기 단위 테스트 (0) | 2022.06.22 |
긴 요소 목록에서 작은 변경 하나에 대해 렌더링 시간을 단축할 수 있는 방법이 있습니까? (0) | 2022.06.22 |
Vue는 vue 1에서 vue 2로의 이행을 필터링합니다. (0) | 2022.06.22 |
Vue Js 단락이 -> OK로 표시되지만 체크박스가 작동하지 않음 (0) | 2022.06.22 |