回答編集履歴

3

英語間違い

2017/10/21 18:12

投稿

退会済みユーザー
test CHANGED
@@ -112,13 +112,13 @@
112
112
 
113
113
 
114
114
 
115
- List<Integer> oddNumList = new ArrayList<Integer>();
115
+ List<Integer> evenNumList = new ArrayList<Integer>();
116
116
 
117
117
  for (int i : nums) {
118
118
 
119
119
  if (i % 2 == 0) {
120
120
 
121
- oddNumList.add(i);
121
+ evenNumList.add(i);
122
122
 
123
123
  }
124
124
 
@@ -126,21 +126,21 @@
126
126
 
127
127
 
128
128
 
129
- // Integer[] oddNums = oddNumList.toArray(new Integer[0]);
129
+ // Integer[] evenNums = evenNumList.toArray(new Integer[0]);
130
130
 
131
131
 
132
132
 
133
- int[] oddNums = new int[oddNumList.size()];
133
+ int[] evenNums = new int[evenNumList.size()];
134
134
 
135
- for (int i = 0; i < oddNumList.size(); i++) {
135
+ for (int i = 0; i < evenNumList.size(); i++) {
136
136
 
137
- oddNums[i] = oddNumList.get(i);
137
+ evenNums[i] = evenNumList.get(i);
138
138
 
139
139
  }
140
140
 
141
141
 
142
142
 
143
- for (int i : oddNums) {
143
+ for (int i : evenNums) {
144
144
 
145
145
  System.out.println(i);
146
146
 

2

追記

2017/10/21 18:12

投稿

退会済みユーザー
test CHANGED
@@ -93,3 +93,57 @@
93
93
  jshell>
94
94
 
95
95
  ```
96
+
97
+
98
+
99
+ ---
100
+
101
+ 再追記:
102
+
103
+
104
+
105
+ 最初の内容をJava5でも動く書き方をすると、下記のような感じでしょうか。
106
+
107
+
108
+
109
+ ```java
110
+
111
+ int[] nums = {0,1,2,3,4,5,6,7,8,9,10,11};
112
+
113
+
114
+
115
+ List<Integer> oddNumList = new ArrayList<Integer>();
116
+
117
+ for (int i : nums) {
118
+
119
+ if (i % 2 == 0) {
120
+
121
+ oddNumList.add(i);
122
+
123
+ }
124
+
125
+ }
126
+
127
+
128
+
129
+ // Integer[] oddNums = oddNumList.toArray(new Integer[0]);
130
+
131
+
132
+
133
+ int[] oddNums = new int[oddNumList.size()];
134
+
135
+ for (int i = 0; i < oddNumList.size(); i++) {
136
+
137
+ oddNums[i] = oddNumList.get(i);
138
+
139
+ }
140
+
141
+
142
+
143
+ for (int i : oddNums) {
144
+
145
+ System.out.println(i);
146
+
147
+ }
148
+
149
+ ```

1

追記

2017/10/21 18:09

投稿

退会済みユーザー
test CHANGED
@@ -31,3 +31,65 @@
31
31
  $3 ==> int[6] { 1, 3, 5, 7, 9, 11 }
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ---
38
+
39
+ 追記:
40
+
41
+ int[]からInteger[]への変換は手抜きしましたが、例えば下記のように実装できるかと思います。
42
+
43
+
44
+
45
+ ```bash
46
+
47
+ $ /opt/jdk-9/bin/jshell
48
+
49
+ | JShellへようこそ -- バージョン9
50
+
51
+ | 概要については、次を入力してください: /help intro
52
+
53
+
54
+
55
+ jshell> Comparator<Integer> cmp = new Comparator<Integer>(){
56
+
57
+ ...> public int compare(Integer n1, Integer n2) {
58
+
59
+ ...> if (n1 % 2 != n2 % 2) {
60
+
61
+ ...> return n1 % 2 - n2 % 2;
62
+
63
+ ...> } else {
64
+
65
+ ...> return n1 - n2;
66
+
67
+ ...> }
68
+
69
+ ...> }
70
+
71
+ ...> }
72
+
73
+ cmp ==> 1@6500df86
74
+
75
+
76
+
77
+ jshell> Integer[] nums = {0,1,2,3,4,5,6,7,8,9,10,11}
78
+
79
+ nums ==> Integer[12] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }
80
+
81
+
82
+
83
+ jshell> Arrays.sort(nums, cmp);
84
+
85
+
86
+
87
+ jshell> nums
88
+
89
+ nums ==> Integer[12] { 0, 2, 4, 6, 8, 10, 1, 3, 5, 7, 9, 11 }
90
+
91
+
92
+
93
+ jshell>
94
+
95
+ ```