2013-10-20 2 views
-2

в настоящее время совершает покупку. Я почти на полпути сделал это, единственное, что мне нужно. когда я нажимаю 1 для покупки, он даст мне возможность ввести Код товара, который я сохранил в своем инвентаре. И затем он соответственно отображает данные или значения, соответствующие моему введенному коду на основе моих сохраненных продуктов в моем инвентаре.JAVA. Поиск значения и отображение данных

PS: im new in java, и я знаю, что мои коды по-прежнему являются базовыми, поскольку я все еще изучаю Java самостоятельно. И мои переменные еще не изменены на Arraylist cus, я только что узнал, что Arraylist намного лучше, чем простой массив, хранящий сбор данных.

Любые предложения приветствуются и приветствуются. Будет придерживаться использования Arraylist или Array. не Хэссет и т. д. Спасибо, ребята!

Надеюсь, вы, ребята, могли мне помочь. Благодаря!

+3

Можете ли вы показать нам код класса Item, а также код, который вы используете для поиска предметов из arraylist? –

+0

Ваше описание сбивает с толку. Скажите нам, какая половина вы закончили и что вам нужно. Также дайте нам некоторый код. – bcorso

+0

Вы говорите, что не хотите использовать HashSet, но вы, вероятно, должны его рассмотреть. Поиск через ArrayList для «icode» займет время O (N). Использование HashSet (путем переопределения hashcode и равным использованию поля «icode») сделает поиск O (1). Это было бы необходимо при создании фактической базы данных, которая могла бы хранить 1000 элементов. – bcorso

ответ

0
class Item { 
    public final int sku; 
    public final String desc; 
    public final type other_fields; 

    public Item(int s, String d, type fields...) { 
     // set fields 
    } 
} 

или, если вы действительно хотите быть умным

abstract class Item { 
    public final int sku 
    // .... 
} 

class PinkCurtains extends Item { 
    public PinkCurtains() { 
     sku = 129534; 
     desc = "Adorable Pink Indoor Curtains"; 
    } 
} 

class FuzzyTowel extends Item { 
    public FuzzyTowel() { 
     sku = 874164; 
     desc = "Machine Washable Fuzzy Towel"; 
    } 
} 

затем заполнить список и поиск прочь

ArrayList<Item> catalog = new ArrayList<Item>(0); 

for (int i = 0; i < numItems; i++) { 
    catalog.add(new Item(arg, arg, arg...)); 
} 

// or 

catalog.add(new PinkCurtains()); 
catalog.add(new FuzzyTowel()); 

for (Item item : catalog) { 
    if (chosenItem == item.sku) { 
     // do all your stuff 
    } 
} 

Они называются итерируемыми по причине. Вам не нужно создавать классы, если вы этого не хотите. ArrayList также имеет методы поиска, содержит() и IndexOf(), например:

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

Если вы хотите, чтобы заполнить поля, как вы идете вы можете сделать класс, который позволяет вам сделать это:

class Item { 
    public int id; 
    public float price; 
} 

ArrayList<Item> cart = new ArrayList<Item>(0); 

do { 

    Item item = new Item(); 

    item.id = userInput; 
    item.price = userInput; 

    cart.add(item); 

} while (userInputting); 

float total = 0; 

for (Item i : cart) { 
    total += i.price; 
} 

// using a regular for loop instead of for-each 

for (int i = 0; i < cart.size(); i++) { 
    Item item = cart.get(i); 

    // or search for something particular 

    if (item.id == searchID) { 
     System.out.println("found item " + item.id + " with price $" + item.price); 
    } 

    // equivalent to 

    if (ids[i] == searchID) { 
     System.out.println("found item " + ids[i] + " with price $" + prices[i]); 
    } 
} 

Каждый раз, когда пользователь хочет добавить элемент, вы просто создаете новый, заполните поля и добавьте их в список.

+0

Я рассмотрю это. благодаря! но информация зависит от того, что вход пользователя не исправлен. и это зависит от многих предметов, которые они хотят хранить и покупать. – errkuh

+0

Просто пример того, как вы можете использовать ArrayList, чтобы делать такие вещи. ArrayLists функционально похожи на обычный массив, за исключением того, что они имеют переменный размер и имеют несколько колоколов и свистов. Вы также можете сразу же создать класс Item и заполнить поля, когда пользователь их вводит. Это просто способ сохранить все в одном месте. – Radiodef

+0

может показать мне, как? пожалуйста? я получаю это. все хорошо и нерв сказал. Спасибо!! – errkuh

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