Да, абстрактный класс может иметь конструктора. Рассмотрите это:
abstract class Product {
int multiplyBy;
public Product( int multiplyBy ) {
this.multiplyBy = multiplyBy;
}
public int mutiply(int val) {
return multiplyBy * val;
}
}
class TimesTwo extends Product {
public TimesTwo() {
super(2);
}
}
class TimesWhat extends Product {
public TimesWhat(int what) {
super(what);
}
}
суперкласс Product
абстрактен и имеет конструктора. Реальный класс TimesTwo
имеет конструктора что просто hardcodes значение 2. Реальный класс TimesWhat
имеет конструктора, который позволяет вызывающей стороне определять значение.
Абстрактные конструкторы будут часто использоваться для осуществления ограничений класса или инвариантов, таких как минимальные поля, требуемые устанавливать класс.
ПРИМЕЧАНИЕ: Как нет никакого значения по умолчанию (или без аргументов) конструктор в родительском абстрактном классе, конструктор, используемый в подклассе, должен явно вызвать родительского конструктора.
Один очень удобный способ «группировать» по какому-то полю (или набору полей и выражений, но я ' для простоты буду использовать "поле"! возможно, вы можете хэшировать поле группировки и использовать хеш-таблицу для результатов, накапливаемых для этой группы - в каждой строке в RBG, хешируйте поле группировки, проверьте, присутствует ли оно уже в качестве ключа в хеш-таблице, если не поставить это там с аккумуляторами, соответственно инициализированными из строки RBG, иначе обновите аккумуляторы в строке RBG. Вы просто испускаете все в конце. Проблема, конечно, в том, что вы до конца занимаете больше памяти! -)
Это два основных подхода. Хотели бы вы, кстати, псевдокод для каждого?
Вы просто испускаете все в конце. Проблема, конечно, в том, что вы до конца занимаете больше памяти! -)Это два основных подхода. Хотели бы вы, кстати, псевдокод для каждого?
Вы просто испускаете все в конце. Проблема, конечно, в том, что вы до конца занимаете больше памяти! -)Это два основных подхода. Хотели бы вы, кстати, псевдокод для каждого?
Вам следует проверить базы данных OLAP. OLAP позволяет вам создать базу данных агрегатов, предназначенную для анализа по принципу «срез и кубик».
Агрегированные показатели, такие как подсчеты, средние, минимальные, максимальные, суммы и стандартные отклонения, могут быть быстро проанализированы по любому количеству измерений с использованием база данных OLAP.
См. это введение в OLAP в MSDN.
Приведите пример CSV-файла и тип желаемого результата, и я, возможно, смогу найти для вас решение на Python.
Python имеет модуль CSV и функции генерации списков / генераторов, которые могут помочь в этом.