fork download
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.List;
  4.  
  5. public class P017 {
  6. public static void main(String[] args) {
  7. IntList il1 = new IntList(3);
  8. System.out.println(il1);
  9.  
  10. IntList il2 = il1.reverse();
  11. System.out.println(il2);
  12.  
  13. IntList il3 = il1.concat(il2);
  14. System.out.println(il3);
  15. System.out.println(il3.sum());
  16.  
  17. // 【重要】元のデータが破壊されてないか、必ずチェックすること
  18. System.out.println(il1);
  19. System.out.println(il2);
  20. }
  21. }
  22.  
  23. class IntList {
  24. List<Integer> list = new ArrayList<Integer>();// フィールド
  25.  
  26. // ② 引数無しのコンストラクタ:list を空のリストで初期化する.
  27. IntList() {
  28. }
  29.  
  30. // ③ int 型の引数 n をとるコンストラクタ:list を 1~n の n 個の整数を要素とするリスト にする.
  31. IntList(int n) { // コンストラクタ
  32. for (int i = 1; i <= n; i++) {
  33. list.add(i);
  34. }
  35. }
  36.  
  37. void add(int n) {
  38. list.add(n);
  39. }
  40.  
  41. int get(int i) {
  42. return list.get(i);
  43. }
  44.  
  45. int size() {
  46. return list.size();
  47. }
  48.  
  49. // ⑦ IntList reverse():この整数リストの内容を反転した整数リストを作成
  50. IntList reverse() {
  51. IntList il2 = concat(null);
  52. try {
  53. Collections.reverse(il2.list);
  54. } catch (UnsupportedOperationException ex) {
  55. ex.printStackTrace();
  56. }
  57. return il2;
  58. }
  59.  
  60. // ⑧ IntList concat(IntList l):この整数リストの末尾に別の整数リスト l の内容を追加し たリストを作成し,IntList オブ
  61. // ジェクトとして返す
  62. IntList concat(IntList l) {
  63. IntList il2 = new IntList();
  64. // クローン(Shallow Copy)、Deep Copyでは無い
  65. il2.list = new ArrayList<Integer>(list);
  66. if (l != null) {
  67. il2.list.addAll(l.list);
  68. }
  69. return il2;
  70. }
  71.  
  72. // ⑨ int sum():この整数リストに含まれる整数の総和を返す.
  73. int sum() {
  74. int a = 0;
  75. for (Integer i : list) {
  76. a += i;
  77. }
  78. return a;
  79. }
  80.  
  81. // print文で使えるようにしている
  82. @Override
  83. public String toString() {
  84. return list.toString();
  85. }
  86. }
  87.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty