使用索引在Java中搜索向量元素
向量实现了List接口,用于创建动态数组。大小不固定且可以根据需要增长的数组称为动态数组。向量在使用方法和功能方面与ArrayList非常相似。
在这篇文章中,我们将学习如何在Java中创建一个向量并通过其索引搜索特定元素。让我们首先讨论向量。
向量
虽然向量在许多方面都类似于ArrayList,但也存在一些差异。Vector类是同步的,并且包含一些遗留方法。
同步 - 每当我们对向量执行操作时,它都会限制多个线程同时访问它。如果我们尝试同时由两个或多个线程访问一个向量,则它将抛出一个名为“ConcurrentModificationException”的异常。这使得它的效率低于ArrayList。
遗留类 - 在Java 1.2版本发布之前,集合框架尚未引入,那时有一些类描述了这个框架类的特性,并被用作这些类的替代品。例如,Vector、Dictionary和Stack。在JDK 5中,Java创建者重新设计了Vector,并使其完全兼容集合。
我们使用以下语法来创建一个向量。
语法
Vector<TypeOfCollection> nameOfCollection = new Vector<>();
这里,在TypeOfCollection中指定将存储在集合中的元素的数据类型。在nameOfCollection中为您的集合提供合适的名称。
通过索引搜索向量中元素的程序
indexOf()
要通过索引搜索向量中的元素,我们可以使用此方法。使用“indexOf()”方法有两种方式:
indexOf(nameOfObject) - 它以一个对象作为参数,并返回其索引的整数值。如果对象不属于指定的集合,它将简单地返回-1。
indexOf(nameOfObject, index) - 它接受两个参数,一个是对象,另一个是索引。它将从指定的索引值开始搜索对象。
示例1
在下面的示例中,我们将定义一个名为“vectlist”的向量,并使用“add()”方法在其内存储一些对象。然后,使用带单个参数的indexOf()方法搜索元素。
import java.util.*; public class VectClass { public static void main(String args[]) { // Creating a vector Vector< String > vectList = new Vector<>(); // Adding elements in the vector vectList.add("Tutorix"); vectList.add("Simply"); vectList.add("Easy"); vectList.add("Learning"); vectList.add("Tutorials"); vectList.add("Point"); // storing value of index in variable int indexValue = vectList.indexOf("Tutorials"); System.out.println("Index of the specified element in list: " + indexValue); } }
输出
Index of the specified element in list: 4
示例2
下面的示例演示了如果元素在集合中不可用,则“indexOf()”返回-1。
import java.util.*; public class VectClass { public static void main(String args[]) { // Creating a vector Vector< String > vectList = new Vector<>(); // Adding elements in the vector vectList.add("Tutorix"); vectList.add("Simply"); vectList.add("Easy"); vectList.add("Learning"); vectList.add("Tutorials"); vectList.add("Point"); // storing value of index in variable int indexValue = vectList.indexOf("Tutorialspoint"); System.out.println("Index of the specified element in list: " + indexValue); } }
输出
Index of the specified element in list: -1
示例3
下面的示例说明了使用带两个参数的“indexOf()”。编译器将从索引3开始搜索给定的元素。
import java.util.*; public class VectClass { public static void main(String args[]) { // Creating a vector Vector< String > vectList = new Vector<>(); // Adding elements in the vector vectList.add("Tutorix"); vectList.add("Simply"); vectList.add("Easy"); vectList.add("Learning"); vectList.add("Tutorials"); vectList.add("Point"); vectList.add("Easy"); vectList.add("Learning"); // storing value of index in variable int indexValue = vectList.indexOf("Easy", 3); System.out.println("Index of the specified element in list: " + indexValue); } }
输出
Index of the specified element in list: 6
结论
在这篇文章中,我们讨论了一些示例,这些示例展示了在向量中搜索特定元素时indexOf()方法的有用性。我们还学习了Java中的向量。