Как реализовать рекурсивную логику для вложенных комментариев? [Дубликат]

Вы можете использовать Toolkit, нет необходимости в ImageIO

Image image = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());
int width = image.getWidth(null);
int height = image.getHeight(null);

Если вы не хотите обрабатывать загрузку изображения, сделайте

ImageIcon imageIcon = new ImageIcon(file.getAbsolutePath());
int height = imageIcon.getIconHeight();
int width = imageIcon.getIconWidth();
3
задан user3384147 7 December 2015 в 15:08
поделиться

2 ответа

Существует несколько решений, если поиск для этого первого более сложный, но даст лучшую производительность:

Это один из способов реализации иерархической структуры данных в MySQL. Мне нравится руководство здесь

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

Тот, который назван The Nested Set Model.

Второе решение, которое я фактически реализовал сам, является рекурсивным расширением, этот использует множество запросов mysql, и я считаю, что его можно улучшить, но он быстрый и работает хорошо. Дело в том, чтобы использовать для каждой категории такую ​​функцию

var expandSubcategories = function (category) {
    return new promise(function (resolve, reject) {
        category.getSubcategories().then(function (subcategories) {
            //if has subcategories expand recursively inner subcategories
            if (subcategories && subcategories.length > 0) {
                var expandPromises = [];
                _.each(subcategories, function (subcategory) {
                    expandPromises.push(expandSubcategories(subcategory));
                });

                promise.all(expandPromises).then(function (expandedCategories) {
                    category.subcategories = [];

                    _.each(expandedCategories, function (expandedCategory) {
                        category.subcategories.push(expandedCategory);
                    }, this);


                    //return self with expanded inner
                    resolve(category);
                });

            } else {
                //if has no subcategories return self
                resolve(category);
            }
        });
    });
};

Итак, она проходит через категории и рекурсивно расширяет их.

Возможно, это тоже поможет кому-то.

2
ответ дан user3384147 20 August 2018 в 10:54
поделиться
0
ответ дан Pico12 31 October 2018 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: