如何在Java数组中搜索一个元素的例子(ArrayUtils教程)

353 阅读3分钟

在Java编程时,很多时候我们需要检查一个字符串数组是否包含一个特定的字符串或一个整数数组是否包含一个数字。尽管数组是Java中的一个对象,但它并没有提供任何方便的方法来执行搜索元素或查找元素。有时你甚至需要一个存储在数组中的项目的索引,不幸的是,Java API并没有提供任何直接的方法。感谢开源的Apache Commons提供了一个名为ArrayUtils的工具类,它允许你在数组中检查一个项目,找到它在数组中的索引,找到它在数组中的最后索引 ,并执行其他一些常见的操作。

事实上,ArrayUtils为不同种类的数组提供了重载方法,如String、int、float、double、Object等,这使得这种编程任务变得非常简单。在这篇文章中,我们将看到一个Apache commons的例子:如何使用ArrayUtils类来搜索数组中的一个项目 ,并找到它的索引。

Btw,如果你自己找到它,你也可以使用二进制搜索线性搜索算法来扫描数组,并检查一个给定的元素是否存在于数组中。你也可以找到它们在数组中的索引或位置。

检查和查找字符串数组中元素的索引的Java程序

这里是Apache Commons ArrayUtils 类 的完整代码示例 ,它使检查数组中的一个项目变得非常容易,无论它是哪种类型的数组。 ArrayUtils 对所有类型的数组都有重载方法 。我们用ArrayUtils.contains() 和 ArrayUtils.indexOf() 方法来检查数组是否包含某个项,以及该项的索引是什么。

如果你想在没有Apache commons ArrayUtils 类的 情况下进行操作 ,你可以通过这三种 数组转换为ArrayList的方法中的任何一种,你可以利用 List类的 contains()、 indexOf() 和 lastIndexOf() 方法来执行这些操作。

顺便说一下,你需要在classpath 中包含Apache commons JAR来执行这个例子,如果你使用Maven,你可以在pom.xml 文件中包含Apache common dependency

package test;

import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.ArrayUtils;

/**
 *
 * Java program to check if an Array contains an Item or not
 * and finding index of that item. For example, How to check if
 * a String array contains a particular String or not and What is
 * index of that String in Java program.
 *
 * @author http://java67.blogspot.com
 */
public class ArrayTest{

 
    public static void main(String args[]) {
 
      String[] programming = new String[]{"Java", "C++", "Perl", "Lisp"};
   
      // Checking an String in String Array by converting Array To ArrayList
      List<String> programmingList = Arrays.asList(programming);
   
      //Checking does this Array contains Java
      boolean result = programmingList.contains("Java");
   
      System.out.println("Does programming Array contains Java? " + result);
   
      int index = programmingList.indexOf("Java");
   
      System.out.println("Index of Java in programming Array is : " + index);
   
   
      // Checking item in Array using Apache Commons ArrayUtils class
   
      System.out.println("Does programming array has Java? " +
                          ArrayUtils.contains(programming, "Java"));
      System.err.println("What is index of Java in array? " +
                          ArrayUtils.indexOf(programming, "Java"));    
   
    }
     
}
Output
Does programming Array contain Java? true
Index of Java in programming Array is : 0
Does programming array has Java? true
What is the index of Java in the array? 0

以上是在Java中检查数组中的项目和查找数组中的项目索引的两种简单方法。这两种技术都适用于任何类型的数组,如字符串数组或对象数组。 ArrayUtils 甚至可以接受原始数组,如int, float, long等。

感谢你到目前为止阅读这篇文章。如果你喜欢这个Java数组教程,那么请与你的朋友和同事分享它。如果你有任何问题或疑问,那么请告诉我们,我会努力为你找到答案。我们一如既往地欢迎大家提出建议、评论、创新和更好的答案。