public void separateIncomeAndExpense() { CategoryTree<Category> newCategories = new CategoryTree<Category>(); Category income = new Category(); income.id = INCOME_CATEGORY_ID; income.makeThisCategoryIncome(); income.title = "<INCOME>"; Category expense = new Category(); expense.id = EXPENSE_CATEGORY_ID; expense.makeThisCategoryExpense(); expense.title = "<EXPENSE>"; for (Category category : categories) { if (category.id <= 0) { newCategories.add(category); } else { if (category.isIncome()) { income.addChild(category); } else { expense.addChild(category); } } } if (income.hasChildren()) { newCategories.add(income); } if (expense.hasChildren()) { newCategories.add(expense); } categories = newCategories; }