Сделайте это следующим образом:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// Tests
System.out.println(list("Sid"));
System.out.println(list("Siddu"));
System.out.println(list("iiSidee"));
System.out.println(list("id"));
System.out.println(list("aaaKapil"));
System.out.println(list("Kapil"));
System.out.println(list("ii"));
}
public static boolean list(String input) {
List<String> list = new ArrayList<String>();
list.add("Sid");
list.add("Siddu");
list.add("Kapil");
for (String s : list) {
if (s != null && input != null) {
if (input.equals(s) || input.contains(s)) {
return true;
}
}
}
return false;
}
}
Вывод:
true
true
true
false
true
true
false
[Обновление] Добавление этого обновления в ясно @ lainatnavi сомнение
public class Main {
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
for (long i = 0; i < Integer.MAX_VALUE; i++)
"hello".equals("hello");
System.out.println("Time taken: " + (System.currentTimeMillis() - startTime) + " ms");
startTime = System.currentTimeMillis();
for (long i = 0; i < Integer.MAX_VALUE; i++)
"hello".contains("hello");
System.out.println("Time taken: " + (System.currentTimeMillis() - startTime) + " ms");
}
}
Вывод:
Time taken: 498 ms
Time taken: 6405 ms
Причина, по которой я сделал if (input.equals(s) || input.contains(s))
в своем ответе, заключается в том, что если input.equals(s)
возвращает true
, элемент управления не будет go проверять input.contains(s)
, что приведет к повышению производительности.