Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sequential Searching

Ok I am relatively new to Java Programming, but have previous experience in C++. I want to search an array for a specific item, but what if there are more than one of the same specific item? Would it be best to use a temporary array to store all found items in the array and return the temporary array?

Note: I'm trying to find the best way of doing this with memory management and speed. And it's not for Home work:)

like image 425
fkianos15 Avatar asked Sep 22 '26 02:09

fkianos15


2 Answers

Use apache commons lib, which solve a lot of issues. Use this if you want to filter by predicate and select sub array

        CollectionUtils.filter(
            Arrays.asList(new Integer[] {1,2,3,4,5}),
            new Predicate() {
                public boolean evaluate(final Object object) {
                    return ((Integer) object) > 2;
                }
            }
    );

In case if you would like to select item(s) use

CollectionUtils.select(Collection inputCollection, Predicate predicate)

Use true java way - Navigable set and maps

NavigableSet<E> subSet(E fromElement, boolean fromInclusive,
                       E toElement,   boolean toInclusive);
like image 52
Igor Azarny Avatar answered Sep 24 '26 14:09

Igor Azarny


If you able to skip Java, then in Scala it will be much easier:

scala> val a = Array(4, 6, 8, 9, 4, 2, 4, 2)
a: Array[Int] = Array(4, 6, 8, 9, 4, 2, 4, 2)

scala> a.filter(_ == 4)
res0: Array[Int] = Array(4, 4, 4)
like image 43
Andriy Plokhotnyuk Avatar answered Sep 24 '26 14:09

Andriy Plokhotnyuk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!