code: @Override
      String[] executeCommand(int timeout, String componentName, Object... data) {
          mComponentsMap = new HashMap<>();
  
          Window[] displayableWindows = getDisplayableWindows();
          for (Window window : displayableWindows) {
              if (window.getName() != null) {
                  addToMap(window);
              }
              browseComponent(window.getComponents());
          }
  
          ArrayList<String> list = new ArrayList<>();
          for (String key : mComponentsMap.keySet()) {
              list.add(key + "   (number of instance with this name :" + mComponentsMap.get(key).size() + ")");
          }
          Collections.sort(list);
          list.add("Number of ownerless windows : " + Window.getOwnerlessWindows().length);
          list.add("Number of displayable windows : " + displayableWindows.length);
          return list.toArray(new String[list.size()]);
      }
docs: Lists all component's names and counts the number of instances which have the same names.
  
  @return an array of Strings that have the following format : component_name (number of instance : X)