Java中的Collections copy()方法及其示例

Java中的Collections copy()方法及其示例

java.util.Collections 类的 copy() 方法用于将一个列表中的所有元素复制到另一个列表中。

操作后,目标列表中每个复制的元素的索引就与源列表中的索引相同。目标列表的长度必须至少与源列表一样长。如果目标列表比源列表更长,则目标列表中其余元素不受影响。

该方法的运行时间线性。

语法:

public static void copy(List dest, List src)

参数: 该方法以以下参数作为参数

  • dest – 目标列表。
  • src – 源列表。

异常: 如果目标列表太小,无法包含整个源列表,则此方法会抛出 IndexOutOfBoundsException

以下是说明checkedSortedSet()方法的示例

示例1:

// Java程序演示
// copy()方法
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] args)
        throws Exception
    {
        try {
  
            // 创建源列表和目标列表对象
            List<String> srclst = new ArrayList<String>(3);
            List<String> destlst = new ArrayList<String>(3);
  
            // 将元素添加到srclst
            srclst.add("Ram");
            srclst.add("Gopal");
            srclst.add("Verma");
  
            // 将元素添加到destlst
            destlst.add("1");
            destlst.add("2");
            destlst.add("3");
  
            // 打印srclst
            System.out.println("源列表的值: " + srclst);
  
            // 打印destlst
            System.out.println("目标列表的值: " + destlst);
  
            System.out.println("\n复制后:\n");
  
            // 复制元素到destlst
            Collections.copy(destlst, srclst);
  
            // 打印srclst
            System.out.println("源列表的值: " + srclst);
  
            // 打印destlst
            System.out.println("目标列表的值: " + destlst);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println("抛出异常 : " + e);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("抛出异常 : " + e);
        }
    }
}
源列表的值: [Ram, Gopal, Verma]
目标列表的值: [1, 2, 3]

复制后:

源列表的值: [Ram, Gopal, Verma]
目标列表的值: [Ram, Gopal, Verma]

示例2: IndexOutOfBoundsException异常

// 演示copy()方法的Java程序
  
import java.util.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
        try {
  
            // 创建源列表和目标列表的对象
            List<String> srclst = new ArrayList<String>(3);
            List<String> destlst = new ArrayList<String>(2);
  
            // 向srclst添加元素
            srclst.add("Ram");
            srclst.add("Gopal");
            srclst.add("Verma");
  
            // 向destlst添加元素
            destlst.add("1");
            destlst.add("2");
  
            // 打印srclst
            System.out.println("Value of source list: " + srclst);
  
            // 打印destlst
            System.out.println("Value of destination list: " + destlst);
  
            System.out.println("\nAfter copying:\n");
  
            // 将元素复制到destlst
            Collections.copy(destlst, srclst);
  
            // 打印srclst
            System.out.println("Value of source list: " + srclst);
  
            // 打印destlst
            System.out.println("Value of destination list: " + destlst);
        }
  
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown : " + e);
        }
  
        catch (IndexOutOfBoundsException e) {
            System.out.println("Exception thrown : " + e);
        }
    }
}
Value of source list: [Ram, Gopal, Verma]
Value of destination list: [1, 2]

After copying:

Exception thrown : 
java.lang.IndexOutOfBoundsException:
 Source does not fit in dest

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程