在Java中,在使用集合时,我们会遇到各种将一个列表的元素复制到另一个列表的情况,但要注意复制时不能影响元素的索引。对于这种类型的场景,java.util.Collections包为我们提供了一个函数copy(),它将一个列表中存在的元素复制到另一个列表中,这样元素在新列表中也具有相同的索引。使用此功能时,目标列表的大小必须大于源列表的大小。这个函数的时间复杂度是线性的。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
以下是带有参数的 java 中 copy() 的语法:
语法:
public static void copy(List dest, List src)
参数:
上述函数抛出以下异常:
下面给出的是下面提到的示例:
说明当目标列表的大小小于源列表时,IndexOutOfBoundsException 的发生。
代码:
import java.util.*; public class Demo { public static void main(String[] args) { List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); mysrclist.add("EDUCBA"); mysrclist.add("is a great"); mysrclist.add("Learnig Platform"); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of source list: "+mysrclist); System.out.println("Elements of destination list: "+mydestlist); } }
输出:
由于目标列表大小为 0,源列表大小为 6,因此目标列表中该特定索引处没有位置;因此,下面的异常将作为输出抛出。
E解释:
代码:
import java.util.*; public class Demo { public static void main(String[] args) { List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); mysrclist.add("Lets practice"); mysrclist.add("Java"); mysrclist.add("with US"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("EDUCBA"); mydestlist.add("is a great"); mydestlist.add("Learnig Platform"); System.out.println("Elements of destination list before copy() executes: "+mydestlist); Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copy() executes: "+mydestlist); } }
输出:
说明:
在此示例中,我们将看到当源列表的元素复制到目标列表中时,目标列表元素如何被覆盖。
代码:
import java.util.*; public class Demo { public static void main(String[] args) { //Create lists for source and destination List<String> mysrclist = new ArrayList<String>(6); List<String> mydestlist = new ArrayList<String>(11); //Populate two source and destination lists mysrclist.add("DIgital Learning"); mysrclist.add("for Java"); mysrclist.add("is great"); System.out.println("Elements of source list: "+mysrclist); mydestlist.add("Book Learning"); mydestlist.add("is"); mydestlist.add("a great"); mydestlist.add("Learnig Platform"); mydestlist.add("For All"); System.out.println("Elements of destination list before copying : "+mydestlist); // copy into destination list Collections.copy(mydestlist, mysrclist); System.out.println("Elements of destination list after copying : "+mydestlist); } }
输出:
说明:
collections 包为我们提供了一个公共静态方法,可用于将源列表的元素复制到相同索引处的目标列表中。该方法仅适用于大于源列表的目标列表,并且该操作具有线性时间复杂度。
以上是Java 中的 copy()的详细内容。更多信息请关注PHP中文网其他相关文章!