Я получил дамп кучи из приложения и обнаружил, что существует огромное количество ArrayLists только с 1 объектом в нем. Я знаю, как получить список таких массивов, а также показать класс содержащегося элемента:
SELECT list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1)
Результат выглядит следующим образом:
java.lang.String [id=0x7f8e44970]
java.lang.String [id=0x7f8e44980]
java.lang.String [id=0x7f8e44572]
java.io.File [id=0x7f8e43572]
...
Я хотел бы получить что-то вроде этого:
Class | count
=================================
java.lang.String | 100
java.io.File | 74
...
но я не могу обобщить результаты или сделать что-то еще с ними. Я нашел здесь, как передать значения внешнему выбору, но я не могу понять, как использовать что-нибудь еще, кроме *
в первом выборе.
SELECT * from OBJECTS
(SELECT OBJECTS list.elementData[0] FROM java.util.ArrayList list WHERE (list.size = 1))