У меня есть метод, который спящий режим, через который один я получаю список, как показано ниже ..итерация по списку, который имеет тип объекта
List<abcObject> aaList= session.createCriteria(abcObject.class)
Теперь при осмотре я обнаружил, что тип списка имеет тип объекта, поскольку критерии апи возвращают нам список типов объектов
Теперь список утра принимающий что в следующем моде, которая ..
t_id value
11 3
12 20
14 60
15 17 ------->(3+20+60+17 =100),here min =11 & max =15
18 40
22 20
33 40
45 20 ---------->(40+20+40+20 =100),here min =18 & max =45
Теперь, пожалуйста, сообщите, как мне нужно перебирать список таким образом, чтобы, если количество значений достигает 100, тогда должна быть создана отдельная карта, которая будет иметь значение , а значение будет макс, теперь карта строкового типа
min max
11 15
18 45
, а также заботиться должна быть принято таким образом, что этот параметр, на котором разделение делается это 100 должно быть настраиваемыми иногда он может быть установлен на 60 и поэтому этот параметр деления должен быть конфигурируемым
поэтому, наконец, я хочу создать другую карту, которая является типом строки, так что min и max имеют строку типа в этом списке и сохраняются таким образом, как показано ниже.
min max
11 15
18 45
Пожалуйста, сообщите, как достичь этого в java, поскольку список относится к типу объекта.
Я попробовал некоторые, что это, но это не правильно ..
final int BARRIER = 100;
//I am going to assume there are getter methods in you abcObject and
//that all values are greater than 0
List<abcObject> minMaxs = new List<abcObject>();
int sum = 0;
int min = 0;
for (abcObject obj: aaList) {
if (sum == 0) {
//start over, remember min
min = obj.getT_id();
}
//add value to sum
sum += obj.getValue();
if (sum >= BARRIER) {
//now we need to start again, remember what we got
minMaxs.add(new abcObject(min, obj.getT_id()));
//reset
min = 0;
sum = 0;
}
}
Если я правильно понял, это типичная проблема с рюкзаком (http://en.wikipedia.org/wiki/Knapsack_problem). Существует множество примеров реализации. –
@Andae Я уже искал в google, но не смог найти точного решения –
Возможный дубликат http://stackoverflow.com/questions/21398178/iterating-over-list-and-storing-it-contents-over- -карта/21399309 # 21399309 –