Показать сообщение отдельно
diskursmonger
pak
Аватар для diskursmonger
Сообщения: 9,041
Регистрация: 14.04.2003
Старый пост, нажмите что бы добавить к себе блог 22 декабря 2009, 18:15
  #241 (ПС)
-Цитата от RabbiT Посмотреть сообщение
-
да

прохожу по учёбе яву но не люблю
NIF man здарова, я наоборот Джавист но Саиты нас тут заставили мутить, я делел сайт на прошлой неделе типо вот такого : http://www.dmxworld.com/ тоже ставил маргин : 0пх Ауто и когда в инте шестом проверял тоже жопа была.

-Цитата от frolkin Посмотреть сообщение
-Цитата от RabbiT Посмотреть сообщение

это для колонны по середине..????


Джависты тут есть.???
???!!!__JAVA__ !!!???
йайа
И как.??? ты шаришь немного...???? помочь под силу.>???? такая проблемаХотя хз как там в России, может ты меня не поймёшь) у меня список кароче с обектами :

private ArrayList<Item> basket;

типо карзина, где как в списке предметы ,

есть метод посмотреть весь список :


public void showBasket()
{
int listPosition = 0;
while(listPosition < basket.size())
{
Item item = basket.get(listPosition);
System.out.println(listPosition +" : " +item.toString());
listPosition++;
}
}


Таким методом , всё что в списке принтуется по порядку :

Молоко
хлеб
яблоки
презики
яблоки
и.т.д

Так вот вопрос : как мне сделать так чтобы у меня принтовало одинаковые предметы только ОДИН раз и ставило рядом число количества этих предметов:

3 Молоко
2 Яблоки
99 Презиков



Единственное до чего я додумался это вот :


public void countItems()
{
milkCount = 0;
applesCount = 0;
Iterator<Item> it = basket.iterator();
while(it.hasNext())
{
Item currentItem = it.next();
Item name = currentItem.getName();
if( name.equalsIgnoreCase("milk") )
milkCount++;
else if( name.equalsIgnoreCase("apples") )
applesCount++;

}
}

Проблема в том что список всегда меняется, и я не могы просто написать :
milkCount = 0; потаму что молока там может и нету вовсе. Хз что делать, всё перерыл.
ну я бы создал ещё одну коллекцию, вектор к примеру:
Код:
 static Vector v = new Vector();
каждую итерацию пробегал бы по нему и сравнивал текущий элемент корзины с елементами вектора;
при совпадении инкементировал бы следующий елемент вектора;
тоесть например если корзина инициализированна таким образом:
Код:
basket.add("milk");
basket.add("milk");
basket.add("apple");
basket.add("milk");
basket.add("bread");
basket.add("apple");
basket.add("milk");
то вектор будет иметь вид:
milk,4,apple,2,bread,1

ну а дальше выводиш на экран вектор.

реализация метода:

Код:
static public void showBasket()
     {
          boolean add;
          for (int i = 0; i < basket.size(); i++)
          {
               add=true;
               for (int j = 0; j < v.size(); j += 2)
               {
                    if (v.isEmpty())
                    {
                         v.add(basket.get(0));
                         v.add(1);
                    }

                    if (v.get(j).equals(basket.get(i)))
                    {
                         v.set(j + 1, (Integer) v.get(j + 1) + 1);
                         add=false;
                         break;
                    }
               }
               if (add)
               {
                    v.add(basket.get(i));
                    v.add(1);
               }
          }

          for (int i = 0; i < v.size(); i += 2)
          {
               System.out.println(v.get(i + 1) + " " + v.get(i).toString());
          }
     }

offline
Ответить с цитированием