2017-02-18 8 views
-2

Итак, я новичок в Java и изучаю, пока я программирую. У меня есть класс под названием «Компилятор», который имеет несколько переменных разных типов данных. В настоящее время я имею их как отдельные переменные, но в идеале они должны быть в списке массивов, который затем я могу использовать в другом классе Broker.Как создать массив в Java с несколькими типами данных, которые будут использоваться в другом классе

import java.util.ArrayList; 

public class Compiler{ 
     public static String item="top"; 
     public static Integer minprice=8; 
     public static Integer maxprice=15; 
     public static Integer qty=1; 

Это начал мой код, и я пытался сделать массив, который я могу использовать в своем классе брокера, но я изо все силы, может кто-нибудь помочь?

+1

В вашем классе брокеров вы можете создать экземпляр ArrayList из компилятора (удалите статику из объявлений, хотя - у него есть определенная семантика, которую вы не хотите в этом случае, хотя и не видя больше кода, это трудно сказать). Например: List compilers = new ArrayList (); compilers.add (новый компилятор()); ... –

+0

Неясно, как хранятся переменные. Должно ли это быть несколько массивов в одном объекте или в одном массиве из нескольких объектов? – K3v1n

+0

Добро пожаловать в переполнение стека! Пожалуйста, примите [тур] (http://stackoverflow.com/tour), осмотритесь и прочитайте [справочный центр] (http://stackoverflow.com/help), в частности [Как я могу спросить хороший вопрос?] (http://stackoverflow.com/help/how-to-ask) и [Какие темы можно задать здесь?] (http://stackoverflow.com/help/on-topic). - ваш вопрос заключается в том, чтобы точно оценить ситуацию. Возможно, вы объясните цель своей программы и причину, по которой вы думаете, что вам нужен этот массив ... –

ответ

1

Если вы хотите сохранить несколько Compiler объектов, то вы можете использовать ArrayList<Compiler> (как уже упоминалось Джеймс Фрай в комментариях) как так:

public class Compiler { 
    public String item="top"; 
    public Integer minprice=8; 
    public Integer maxprice=15; 
    public Integer qty=1; 
} 

public class Broker { 
    // If you are using Java SE 7,   you can omit the type here 
    ArrayList<Compiler> arr = new ArrayList<Compiler>(); 
} 

Для улучшения дизайна, вы можете установить модификатор доступа к private и создание getter and setter functions

Вы можете добавлять и удалять элементы с помощью методов add(T) and remove(int).

+0

Извините, я все еще очень новый, как добавить элементы в список массивов? – Olivia

+1

Вы можете опустить тип (используйте синтаксис алмаза), так как Java 7. –

+0

@DavidConrad oh спасибо! :) – K3v1n

0

Вы можете создать Object[] массив, в котором вы можете хранить любое значение:

Object[] array = new Object[]{"top", 8, 15, 1}; 

Однако, как правило, лучше, чтобы определить класс, где такие значения присваиваются полям (часто доступ к которым get.../set... методами), каждый с четко определенным типом и значением.

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

0

Вы не можете смешивать разные типы в одном массиве ArrayList. Если ваша цель - передать эти четыре переменные Брокеру, а затем использовать String для одной вещи, первый int для чего-то еще и т. Д., Просто сделайте поля нестатическими и постройте объект Compiler, затем передайте объект Broker и получите переменные оттуда.

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