[List-CaseInsenContains] Case-Insensitive Searching in ArrayList (#13280)
This commit is contained in:
parent
13097b458f
commit
c0157effb0
|
@ -0,0 +1,14 @@
|
|||
package com.baeldung.list.ignorecase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class IgnoreCaseSearchUtil {
|
||||
public static boolean ignoreCaseContains(List<String> theList, String searchStr) {
|
||||
for (String s : theList) {
|
||||
if (searchStr.equalsIgnoreCase(s)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.baeldung.list.ignorecase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
public class IgnoreCaseStringList extends ArrayList<String> {
|
||||
|
||||
public IgnoreCaseStringList() {
|
||||
|
||||
}
|
||||
|
||||
public IgnoreCaseStringList(Collection<? extends String> c) {
|
||||
super(c);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean contains(Object o) {
|
||||
String searchStr = (String) o;
|
||||
// Using Stream API:
|
||||
// return this.stream().anyMatch(searchStr::equalsIgnoreCase);
|
||||
for (String s : this) {
|
||||
if (searchStr.equalsIgnoreCase(s)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
package com.baeldung.list.ignorecase;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public class IgnoreCaseContainsUnitTest {
|
||||
private static final List<String> LANGUAGES = Arrays.asList("Java", "Python", "Kotlin", "Ruby", "Javascript", "Go");
|
||||
|
||||
@Test
|
||||
void givenStringList_whenCallTheStandardContains_shouldReturnFalse() {
|
||||
String searchStr = "jAvA";
|
||||
boolean result = LANGUAGES.contains(searchStr);
|
||||
assertFalse(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenStringList_whenSearchIgnoreCaseUsingStreamAPI_shouldReturnTrue() {
|
||||
String searchStr = "koTliN";
|
||||
boolean result = LANGUAGES.stream().anyMatch(searchStr::equalsIgnoreCase);
|
||||
assertTrue(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenStringList_whenUsingUtilClass_shouldReturnTrue() {
|
||||
String searchStr = "ruBY";
|
||||
boolean result = IgnoreCaseSearchUtil.ignoreCaseContains(LANGUAGES, searchStr);
|
||||
assertTrue(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenStringList_whenUsingIgnoreCaseStringList_shouldReturnTrue() {
|
||||
String searchStr = "pYtHoN";
|
||||
List<String> ignoreCaseList = new IgnoreCaseStringList(LANGUAGES);
|
||||
boolean result = ignoreCaseList.contains(searchStr);
|
||||
assertTrue(result);
|
||||
|
||||
boolean resultContainAll = ignoreCaseList.containsAll(Arrays.asList("pYtHon", "jAvA", "koTliN", "ruBY"));
|
||||
assertTrue(resultContainAll);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue