I have a List of object and the list is very big. The object is
class Sample {
String value1;
String value2;
String value3;
String value4;
If you always search based on value3, you could store the objects in a Map:
Map> map = new HashMap <>();
You can then populate the map with key = value3 and value = list of Sample objects with that same value3 property.
You can then query the map:
List allSamplesWhereValue3IsDog = map.get("Dog");
Note: if no 2 Sample instances can have the same value3, you can simply use a Map.