2019独角兽企业重金招聘Python工程师标准>>>

复制list1的内容到list2,结果报异常

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

static void findSubsets (ArrayList<Integer> numbers, int amount, int index){ArrayList <Integer> numbersCopy = new ArrayList<Integer>(numbers.size());Collections.copy(numbersCopy, numbers);}
异常信息:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Source does not fit in destat java.util.Collections.copy(Collections.java:548)at backtracking2.Main.findSubsets(Main.java:61)

它这里指的长度是List里的size()方法值,我们都知道new ArrayList()初始化的时候size()等于0,即便是你使用new ArrayList(10)来初始化,也只是预设了一个initialCapacity==10的存储空间,size()还是等于0。因此在使用Collections.copy之前,需要把目的List加一些空的元素,直到目的List的size()值与源List的size()值等长(或更长)。

或者用如下方法复制list:

    public static void copyList(List dest ,List source ) {dest.clear();for( int i = 0 ; i < source.size() ; i++ ){dest.add( source.get( i ));}}

亦或:

List source = new ArrayList();
source.add("hello");
List destination = Arrays.asList(new Object[source.size()]);
Collections.copy(destination, source);

转载于:https://my.oschina.net/closeday/blog/310477

Source does not fit in dest相关推荐

  1. java collections_Java集合基础的详细介绍(二)

    七.Collections工具类 Collections 是一个操作 Collection 和 Map 等集合的工具类.Collections 中提供了一系列静态的方法对集合元素进行排序.查询和替换等 ...

  2. java迭代器创建后mutx锁,java集合【5】—— Collections接口源码解析

    一.Collections接口是做什么的? 用官网文档的介绍:The polymorphic algorithms described here are pieces of reusable func ...

  3. Java不同场景加载不同类_[改善Java代码]不同的场景使用不同的泛型通配符

    Java泛型支持通配符(Wildcard),可以单独使用一个"?"表示任意类,也可以使用extends关键字标识某一类(接口)的子类型,还可以使用super关键字标识某一类(接口) ...

  4. java 集合类源码分析--collections

    我认为Collections类主要是完成了两个主要功能  1.提供了若干简单而又有用的算法,比如排序,二分查找,求最大最小值等等.  2.提供对集合进行包装的静态方法.比如把指定的集合包装成线程安全的 ...

  5. 集合框架源码分析四(Collections类详细分析)

    我认为Collections类主要是完成了两个主要功能  1.提供了若干简单而又有用的算法,比如排序,二分查找,求最大最小值等等.  2.提供对集合进行包装的静态方法.比如把指定的集合包装成线程安全的 ...

  6. ❤️ 爆肝一个月!JAVA零基础入门总结(下)❤️

    程序.进程.线程 程序(program) 是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process) 是程序的一次执行过程,或是正在运行的一个程序.是一个 ...

  7. java面试 泛型_Java面试题五:Java 的泛型, super T 和 extends T 的区别

    相关文章: java泛型通配符 ? extends T 和 ? super T 的区别和用法 一.二者的意思 ? extends T :表示上界是T, ? 都是继承自T的,都是T的子类: ? supe ...

  8. 代码重构技巧宝典,学透本篇就足够了!

    本文来源:http://n5d.net/ma76k 关于重构 为什么要重构 1_代码重构漫画.jpeg 项目在不断演进过程中,代码不停地在堆砌.如果没有人为代码的质量负责,代码总是会往越来越混乱的方向 ...

  9. Java 泛型中的PECS原则

    在泛型编程时,使用部分限定的形参时,<? super T>和<? extends T>的使用场景容易混淆,PECS原则可以帮助我们很好记住它们: 生产者(Producer)使用 ...

最新文章

  1. 视频中的运动特征--Learning Motion Patterns in Videos
  2. SpringBoot 集成 Elasticsearch
  3. 装机必备软件 - 吾爱破解论坛会员专用版
  4. 解决在ESXi的虚拟化环境中的FreeNAS里Jails插件无法被访问到的问题
  5. [USACO06DEC]牛的野餐Cow Picnic DFS
  6. 字符串相乘(大数相乘)
  7. 循环结构_while循环
  8. 二叉树的前序、中序、后序遍历与创建
  9. 《深入浅出WPF》笔记——绑定篇(一)
  10. cmake 添加二进制文件_CMake构建系统
  11. Python if语句Demo
  12. 图像算法七:【形态学图像处理】二值运算、膨胀、腐蚀
  13. python 删除指定时间之前文件的脚本 包括下级目录
  14. 详细分析微软“照片”应用图像编码器漏洞 (CVE-2020-17113)
  15. 1.Yii2 -- Controller, Request, Response, Cookie, Session
  16. linux系统操作mysql数据库_利用workbench对linux/Ubuntu系统中的mysql数据库进行操作
  17. python整蛊代码+详解
  18. pinyin4j使用说明
  19. 嵌入式学习资料和项目汇总
  20. 《计算机应用》期刊审稿周期

热门文章

  1. 一个七年的老测试给想入行软件测试这个行业的二十条建议
  2. cordova 安卓文件多选_LAMMPS从研一到延毕:利用MS建模生成反应力场所需的data文件...
  3. cmake list all directories
  4. PDE12 wave equation: charactistics
  5. 3.7.4 - Indexing and Slicing Strings
  6. 基于DenseNet和自注意机制融合的脐橙病虫害鉴定(DenseNet加入注意力+自然数据集扩大)
  7. 多输出模型实例的数据加载
  8. 【java】窗口中监听器的应用
  9. 鸿蒙开发者大会邀请函,将召开史上最大规模开发者大会,华为抓紧调试“鸿蒙”系统...
  10. 《Tensorflow 实战》(完整版,附源码)