阅读CSV文件大多数已预订的房间

问题描述 投票:0回答:1
public String[] getTopRoomsBooked(int n) { HashMap<String, Integer> rooms = new HashMap<String, Integer>(); rooms.put("Gower", 281); rooms.put("Usk", 291); rooms.put("Wye", 283); rooms.put("Bala", 282); rooms.put("Pen y Fan", 292); rooms.put("Llangorse", 290); rooms.put("Snowdon", 288); rooms.put("Taff", 296); rooms.put("Cadair Idris", 292); for (String i : rooms.keySet()) { System.out.println("Room name: " + i + " Amount of time: " + rooms.get(i)); } System.out.println(); List<Integer> timeBooked = new ArrayList<>(rooms.values()); Collections.sort(timeBooked, Collections.reverseOrder()); if (n == 1) { System.out.println("RoomName : Taff " + timeBooked.get(n - 1)); } else if (n == 3) { System.out.println("1: Taff " + timeBooked.get(n - 3)); System.out.println("2: Cadiar Idris " + timeBooked.get(n - 2)); System.out.println("3: Pen y Fan " + timeBooked.get(n - 1)); } else if (n == 5) { System.out.println("1: Taff " + timeBooked.get(n - 5)); System.out.println("2: Cadair Idris " + timeBooked.get(n - 4)); System.out.println("3: Pen y Fan " + timeBooked.get(n - 3)); System.out.println("4: Usk " + timeBooked.get(n - 2)); System.out.println("5: Llangorse " + timeBooked.get(n - 1)); } else if (n == 9) { System.out.println("1: Taff " + timeBooked.get(n - 9)); System.out.println("2: Cadair Idris " + timeBooked.get(n - 8)); System.out.println("3: Pen y Fan " + timeBooked.get(n - 7)); System.out.println("4: Usk " + timeBooked.get(n - 6)); System.out.println("5: Llangorse " + timeBooked.get(n - 5)); System.out.println("6: Snowden " + timeBooked.get(n - 4)); System.out.println("7: Wye " + timeBooked.get(n - 3)); System.out.println("8: Bala " + timeBooked.get(n - 2)); System.out.println("9: Gower " + timeBooked.get(n - 1)); } return null; }

可以使用以下功能使用Java 8流来实现这一点:

Comparator.comparing(...).thenComparing()
java csv java-stream
1个回答
0
投票

Map.Entry<String, Integer>
    输出量
  • limit
    重新映射到房间名称(键hashmap中的键)
  • map
    将房间名称收集到字符串阵列
  • 确定
    rooms
    hashmap是在方法之外填充的,并作为参数提供,让我们将其重写如下:
    collect(Collectors.toList()).toArray(String[]::new)
  • 测试和输出
rooms

在线演示
    
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.