2015-03-17 2 views
0

я надеюсь, что вы можете мне помочь я пытаюсь заказать эти массивыКак я могу заказать продукты массива по идентификатору

int pumpno[] = new int[] { 3, 4, 5, 3, 4, 6}; 
String desc[] = new String[] {"jam", "chesse", "milk", "water", "soup","bread"}; 
int cost[] = new int[] {10, 15, 23, 43, 12, 67}; 

Я хочу напечатать в этих целях:

id 3 
---------- 
desc jam 

cost 10 

desc water 

cost 43 

id 4 
---------- 
desc chesse 

cost 15 

desc soup 

cost 12 


id 5 
---------- 
desc milk 

cost 23 

id 6 
---------- 
desc bread 

cost 63 

Например каждый массив имеет ту же длину, в этом случае 9, в массиве firts aare с одинаковым значением для id, поэтому я просто хочу один раз распечатать значение для id и распечатать все значения ниже с тем же идентификатором

я просто сделать как знать, если равно идентификатор я сделать это с этими

Set<String> set = new HashSet<String>(); 
for (int i = 0; i < pumpno.length; i++) { 
if (set.contains(pumpno[i])) { 
    Log.d("Duplicate ", pumpno[i]); 
} else { 
    set.add(pumpno[i]); 
} 

Но я понятия не имею, как печатать как в примере выше. если вы можете мне помочь, спасибо большое

+0

Rory McCrossan спасибо за редактирование моего вопроса Я изучаю, как использовать это большое пространство. – Dragonbird

ответ

0

Вы можете использовать HashMap, который имеет id как ключ и Set<Product> в качестве значений (если вы не хотите иметь дубликаты или список, если хотите заказать товары). Вы можете заполнить его на одной итерации и распечатать в другой.

Продукт будет структурой данных, которая имеет описание и цену.

Map<int, Set<Product>> productsById = new HashMap<>(); 
for (int i = 0; i < pumpno.length; i++) { 
    if (productsById.containsKey(pumpno[i])) { 
     //add product to existing set 
     productsById.get(pumpno[i]).add(new Product(desc[i], cost[i])); 
    } else { 
     //create set since this is first time id is shown 
     Set<Product> set = new HashSet<Product>(); 
     set.add(new Product(desc[i], cost[i]); 
     productsById.put(pumpno[i], set); 
    } 
} 

String newLine = System.getProperty("line.separator"); 
for (int id : productsById.keySet()){ 
    System.out.println("id " + id + newLine); 
    for (Product product : productsById.get(id)){ 
    System.out.println("description" + product.getDescription() + newLine); 
    System.out.println("cost" + product.getCost() + newLine); 
    } 
} 

Надеюсь, что я не ошибался, так как я набрал здесь в уценке, но это логика.

+0

Хорошо, я действительно новичок, как программист, попробую, чтобы реализовать этот пример. Спасибо Nenad – Dragonbird

+0

Я могу добавить класс продукта, если вам это нужно, вы можете справиться с этим, и можете ли вы добавить печать или вам это тоже нужно? –

+0

Да, я просто вижу это прямо сейчас :) – Dragonbird

Смежные вопросы