teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

a|b<<32で比較したくない

2020/04/07 20:38

投稿

ruei
ruei

スコア284

title CHANGED
@@ -1,1 +1,1 @@
1
- thenComparingによってint[] の 第一要素、第二要素の順でソートしたい
1
+ thenComparingによってlong[] の 第一要素、第二要素の順でソートしたい
body CHANGED
@@ -3,22 +3,22 @@
3
3
  ```Java
4
4
  Arrays.sort(a, new Comparator<int[]>() {
5
5
  @Override
6
- public int compare(int[] o1, int[] o2) {
6
+ public int compare(long[] o1, long[] o2) {
7
- if(o1[0]!=o2[0]) return Integer.compare(o1[0], o2[0]);
7
+ if(o1[0]!=o2[0]) return Long.compare(o1[0], o2[0]);
8
- else return Integer.compare(o1[1], o2[1]);
8
+ else return Long.compare(o1[1], o2[1]);
9
9
  }
10
10
  });
11
11
  ```
12
12
  と同じ働きをするコードを書きたいです。
13
13
  第一要素によるソートは
14
14
  ```Java
15
- Arrays.sort(es, Comparator.comparing(v->v[0]));
15
+ Arrays.sort(a, Comparator.comparing(v->v[0]));
16
16
  ```
17
17
  とすることで行うことが出来ることを手元で確かめています。
18
18
 
19
19
  しかし、第二要素による比較を入れた
20
20
  ```Java
21
- Arrays.sort(es, Comparator.comparing(v->v[0]).thenComparing(v->v[1]));
21
+ Arrays.sort(a, Comparator.comparing(v->v[0]).thenComparing(v->v[1]));
22
22
  ```
23
23
  ですと、Exception in thread "main" java.lang.Error: Unresolved compilation problem:
24
24
  というエラーが発生してしまいます。修正方法の分かる方ご教示ください。

1

リンクが壊れているため

2020/04/07 20:38

投稿

ruei
ruei

スコア284

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- [thenComparing](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Comparator.html#thenComparing-java.util.Comparator-)を用いて長さ2の配列の集合を第一要素、第二要素の優先度順でソートしたいと考えています。
1
+ [thenComparing](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Comparator.html)を用いて長さ2の配列の集合を第一要素、第二要素の優先度順でソートしたいと考えています。
2
2
  具体的には
3
3
  ```Java
4
4
  Arrays.sort(a, new Comparator<int[]>() {