0
0

【備忘録】Javaの変数宣言と同時に初期化、ストリームAPIでソート

Last updated at Posted at 2024-05-03

備忘録

TEST.java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeMap;
import java.util.stream.Collectors;

public class TEST {
    private record Point(String no1, String no2, String value) {
    }

    public static void main(String[] args) {
        // 初期化
        var btree = new TreeMap<String, String>() {
            {
                put("2011-2", "1");
                put("2011-1", "1");
                put("2012-2", "1");
                put("2012-1", "1");
                put("2024-2", "1");
                put("2024-1", "1");
            }
        };
        for (var m : btree.entrySet()) {
            System.out.println(m.getKey() + ", " + m.getValue());
        }

        // 初期化
        var input = new ArrayList<Point>() {
            {
                add(new Point("2011", "2", "1"));
                add(new Point("2011", "1", "1"));
                add(new Point("2012", "2", "1"));
                add(new Point("2012", "1", "1"));
                add(new Point("2024", "2", "1"));
                add(new Point("2024", "1", "1"));
            }
        };
        var sorted = input
                .stream()
                .sorted(Comparator.comparing(Point::no1).thenComparing(Point::no2))
                .collect(Collectors.toList());

        for (var m : sorted) {
            System.out.println(m.no1() + ", " + m.no2() + ", " + m.value());
        }
    }
}

2011-1, 1
2011-2, 1
2012-1, 1
2012-2, 1
2024-1, 1
2024-2, 1
2011, 1, 1
2011, 2, 1
2012, 1, 1
2012, 2, 1
2024, 1, 1
2024, 2, 1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0