1. package org.jr.util;
  2. /**
  3. * Copyright: Copyright (c) 2002-2004
  4. * Company: JavaResearch(http://www.javaresearch.org)
  5. * 最后更新日期:2003年4月3日
  6. * @author Cherami
  7. */
  8. import java.util.*;
  9. /**
  10. * 此类中封装一些常用的List操作方法。
  11. * 所有方法都是静态方法,不需要生成此类的实例,
  12. * 为避免生成此类的实例,构造方法被申明为private类型的。
  13. * @since 0.5
  14. */
  15. public class ListUtil {
  16. /**
  17. * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
  18. */
  19. private ListUtil() {
  20. }
  21. /**
  22. * 将数组转换为一个List,实际上是一个ArrayList。
  23. * @param array 原数组
  24. * @return 原数组不为null的时候返回包含数组内容的ArrayList,否则返回null
  25. * @since 0.5
  26. * @deprecated 在实现的时候没有注意到java.util.Arrays类中有一个方法asList(Object[] a),
  27. * 请使用该方法替换本方法。
  28. */
  29. public static List ArrayToList(Object[] array) {
  30. if (array != null) {
  31. ArrayList list = new ArrayList(array.length);
  32. for (int i = 0; i < array.length; i++) {
  33. list.add(array[i]);
  34. }
  35. return list;
  36. }
  37. else {
  38. return null;
  39. }
  40. }
  41. /**
  42. * 将数组中的内容全部添加到列表中。
  43. * @param array 数组
  44. * @param list 列表
  45. * @since 0.5
  46. */
  47. public static void addArrayToList(Object[] array, List list) {
  48. if (array == null || list == null || array.length == 0) {
  49. return;
  50. }
  51. for (int i = 0; i < array.length; i++) {
  52. list.add(array[i]);
  53. }
  54. }
  55. /**
  56. * 将数组中的内容全部添加到列表中。
  57. * @param array 数组
  58. * @param list 列表
  59. * @param start 开始位置
  60. * @since 0.5
  61. */
  62. public static void addArrayToList(Object[] array, List list, int start) {
  63. if (array == null || list == null || array.length == 0) {
  64. return;
  65. }
  66. for (int i = 0; i < array.length; i++) {
  67. list.add(start + i, array[i]);
  68. }
  69. }
  70. /**
  71. * 移动列表中的元素。
  72. * @param list 列表
  73. * @param start 移动的元素的开始索引
  74. * @param end 移动的元素的最后索引,不包括这个
  75. * @param to 移动到的位置
  76. * @since 0.5
  77. */
  78. public static void moveElements(List list, int start, int end, int to) {
  79. List subList = new ArrayList(list.subList(start, end));
  80. list.removeAll(subList);
  81. list.addAll(to, subList);
  82. }
  83. }