Java Stack search() 方法



描述

search(Object o) 方法用于返回对象在此栈中的基于 1 的位置。

声明

以下是 java.util.Stack.search() 方法的声明。

public int search(Object o)

参数

o − 这是所需的对象。

返回值

方法调用返回对象所在位置从栈顶开始的基于 1 的位置。

异常

在栈中搜索整数示例

以下示例演示了如何使用 Java Stack search() 方法在栈中搜索整数,使用基于 1 的索引。在此示例中,我们创建了一个整数类型的 Stack 对象。然后,我们向栈中添加了一些整数,并使用 search() 方法打印搜索元素的索引。

package com.tutorialspoint;

import java.util.Stack;

public class StackDemo {
   public static void main(String args[]) {

      // creating stack
      Stack<Integer> st = new Stack<>();

      // populating stack
      st.push(10);
      st.push(20);
      st.push(30);

      // searching 30 in the stack
      System.out.println("Searching 30 in stack: "+st.search(30));
   }    
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Searching 30 in stack: 1

在栈中搜索字符串示例

以下示例演示了如何使用 Java Stack search() 方法在栈中搜索字符串,使用基于 1 的索引。在此示例中,我们创建了一个字符串类型的 Stack 对象。然后,我们向栈中添加了一些字符串,并使用 search() 方法打印搜索字符串的索引。

package com.tutorialspoint;

import java.util.Stack;

public class StackDemo {
   public static void main(String args[]) {

      // creating stack
      Stack<String> st = new Stack<>();

      // populating stack
      st.push("Java");
      st.push("Source");
      st.push("code");

      // searching 'code' element
      System.out.println("Searching 'code' in stack: "+st.search("code"));
   }    
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Searching 'code' in stack: 1

在栈中搜索对象示例

以下示例演示了如何使用 Java Stack search() 方法在栈中搜索对象,使用基于 1 的索引。在此示例中,我们创建了一个 Student 对象的 Stack。然后,我们向栈中添加了一些学生,并使用 search() 方法打印搜索学生的索引。

package com.tutorialspoint;

import java.util.Stack;

public class StackDemo {
   public static void main(String args[]) {

      // creating stack
      Stack<Student> st = new Stack<>();

      // populating stack
      st.push(new Student(1, "Julie"));
      st.push(new Student(2, "Robert"));
      st.push(new Student(3, "Adam"));

      // searching 'Adam'
      System.out.println("Searching 'Adam' in stack: "+st.search(new Student(3, "Adam")));
   }    
}
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   // equals method is overridden so that we can search the student using
   // our custom logic
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果。

Searching 'Adam' in stack: 1
java_util_stack.htm
广告