📌  相关文章
📜  替换所有出现的Java向量指定元素

📅  最后修改于: 2022-05-13 01:55:27.178000             🧑  作者: Mango

替换所有出现的Java向量指定元素

Java.util.Collections类的replaceAll()方法用于将列表中一个指定值的所有出现替换为另一个。更正式地,用 newVal 替换列表中的每个元素 e,使得 (oldVal==null ? e==null : oldVal.equals(e))。 (此方法对列表的大小没有影响。)

让我们考虑以下向量:

更换前的矢量

现在在这个向量中,我们必须用给定的值替换所有出现的 5。假设这里的值为 -1。替换后我们的向量应该变成如下图所示:

更换后的矢量

方法:

解决这个问题的一种天真的方法是遍历整个向量,如果向量中的元素等于指定元素,则遍历时将其替换为给定值。

但是,在Java中,我们有一个内置方法 replaceAll()作为Java Collections 的一部分执行相同的操作。

句法:

public static  boolean
  replaceAll(List list, T oldVal, T newVal)

参数:此方法将以下参数作为参数

  • list –要发生替换的列表。
  • oldVal –要替换的旧值。
  • newVal –要替换 oldVal 的新值。

返回值:如果列表包含一个或多个元素 e 使得 (oldVal==null ? e==null : oldVal.equals(e)),则此方法返回true

代码:

Java
// Java program to replace all occurrences
// of Specified Element of Java Vector
  
import java.io.*;
import java.util.Vector;
import java.util.Collections;
class GFG {
    public static void main (String[] args) 
    {
      // Create a vector
      Vector storage =new Vector(6);
        
      // adding elements to the vector
      storage.add(5);      
      storage.add(6);
      storage.add(8);
      storage.add(5);
      storage.add(9);
      storage.add(1);      
      storage.add(5);
      storage.add(2);
  
        
      // val to replace with 
      int val=-1;
        
        
      // printing the vector before replacing 
      System.out.println("Vector before Replacing is: " + storage);
        
      // using Collections.replaceAll to replace all occurrences of the element
      Collections.replaceAll(storage,5,val);
        
        
      //printing the vector after replacing 
      System.out.println("Vector after Replacing is:  " + storage);
       
        
        
    }
}


Java
// Java program to replace all occurrences
// of Specified Element of Java Vector
  
import java.io.*;
import java.util.Vector;
import java.util.Collections;
class GFG {
    public static void main (String[] args) {
      // Create a vector
      Vector storage =new Vector(6);
      // adding elements to the vector
      storage.add("CAT");      
      storage.add("DOG");
      storage.add("CAT");
      storage.add("HORSE");
      storage.add("TIGER");
      storage.add("CAT");
        
      // val to replace with 
     String val="LION";
        
        
      // printing the vector before replacing 
      System.out.println("Vector before Replacing is: " + storage);
        
      // using Collections.replaceAll to replace all occurrences of specified  element
      Collections.replaceAll(storage,"CAT",val);
        
        
      //printing the vector after replacing 
      System.out.println("Vector after Replacing is:  " + storage);
       
        
        
    }
}


输出
Vector before Replacing is: [5, 6, 8, 5, 9, 1, 5, 2]
Vector after Replacing is:  [-1, 6, 8, -1, 9, 1, -1, 2]

现在让我们考虑一个具有字符串而不是整数值的向量:

更换前的矢量

现在在这个向量中,我们必须用给定的字符串替换所有出现的 CAT。假设这里的字符串是 LION。替换后我们的向量应该变成如下图所示:

更换后的矢量

代码:

Java

// Java program to replace all occurrences
// of Specified Element of Java Vector
  
import java.io.*;
import java.util.Vector;
import java.util.Collections;
class GFG {
    public static void main (String[] args) {
      // Create a vector
      Vector storage =new Vector(6);
      // adding elements to the vector
      storage.add("CAT");      
      storage.add("DOG");
      storage.add("CAT");
      storage.add("HORSE");
      storage.add("TIGER");
      storage.add("CAT");
        
      // val to replace with 
     String val="LION";
        
        
      // printing the vector before replacing 
      System.out.println("Vector before Replacing is: " + storage);
        
      // using Collections.replaceAll to replace all occurrences of specified  element
      Collections.replaceAll(storage,"CAT",val);
        
        
      //printing the vector after replacing 
      System.out.println("Vector after Replacing is:  " + storage);
       
        
        
    }
}
输出
Vector before Replacing is: [CAT, DOG, CAT, HORSE, TIGER, CAT]
Vector after Replacing is:  [LION, DOG, LION, HORSE, TIGER, LION]