Advertisement
NAbdulla

Untitled

Mar 12th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.37 KB | None | 0 0
  1. import com.google.gson.Gson;
  2.  
  3. import java.util.Comparator;
  4. import java.util.List;
  5.  
  6. public class PerformanceTester {
  7.     static String givenJson = "[\n" +
  8.             "{\n" +
  9.             "\"Title\": \"Introduction\",\n" +
  10.             "\"Order\": 1,\n" +
  11.             "\"DisplayNumber\": \"\",\n" +
  12.             "\"SubCategories\": []\n" +
  13.             "},\n" +
  14.             "{\n" +
  15.             "\"Title\": \"Chapter 1\",\n" +
  16.             "\"Order\": 2,\n" +
  17.             "\"DisplayNumber\": \"1.\",\n" +
  18.             "\"SubCategories\": [\n" +
  19.             "{\n" +
  20.             "\"Title\": \"Chapter 1.1\",\n" +
  21.             "\"Order\": 1,\n" +
  22.             "\"DisplayNumber\": \"1.1.\",\n" +
  23.             "\"SubCategories\": [\n" +
  24.             "{\n" +
  25.             "\"Title\": \"Chapter 1.1.1\",\n" +
  26.             "\"Order\": 1,\n" +
  27.             "\"DisplayNumber\": \"1.1.1.\",\n" +
  28.             "\"SubCategories\": []\n" +
  29.             "}\n" +
  30.             "]\n" +
  31.             "},\n" +
  32.             "{\n" +
  33.             "\"Title\": \"Chapter 1.2\",\n" +
  34.             "\"Order\": 2,\n" +
  35.             "\"DisplayNumber\": \"1.2.\",\n" +
  36.             "\"SubCategories\": []\n" +
  37.             "}\n" +
  38.             "]\n" +
  39.             "},\n" +
  40.             "{\n" +
  41.             "\"Title\": \"Chapter 2\",\n" +
  42.             "\"Order\": 3,\n" +
  43.             "\"DisplayNumber\": \"2.\",\n" +
  44.             "\"SubCategories\": []\n" +
  45.             "}\n" +
  46.             "]";
  47.     static String forWork = "{\n" +
  48.             "\"Title\":\"root\",\n" +
  49.             "\"Order\":1\n," +
  50.             "\"DisplayNumber\": \"\"\n," +
  51.             "\"SubCategories\":" + givenJson + "\n" +
  52.             "}";
  53.  
  54.     public static void main(String[] args) throws QueueFullException {
  55.         Node root = new Gson().fromJson(forWork, Node.class);
  56.         dfs(root, 0);
  57.     }
  58.  
  59.     static void dfs(Node u, int d) {
  60.         if (!u.Title.equals("root")) {
  61.             if (u.DisplayNumber != null && u.DisplayNumber.length() > 0) {
  62.                 System.out.print(u.DisplayNumber + " ");
  63.             }
  64.             System.out.println(u.Title);
  65.         }
  66.         u.SubCategories.sort(Comparator.comparingInt(o -> o.Order));
  67.         for (Node v : u.SubCategories) {
  68.             dfs(v, d + 1);
  69.         }
  70.     }
  71. }
  72.  
  73. class Node {
  74.     String Title;
  75.     int Order;
  76.     String DisplayNumber;
  77.     List<Node> SubCategories;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement