Как Сделать Конструктор Для Объекта Содержащий Другой Объект - Массив

SimpleGirl

New member
08.02.2014
4
0
#1
Добрый день! скажите пожалуйста я правильно делаю конструктор для объекта содержащий другой объект массив, например конструктор класса Disc

public Disc(int Num, String Title, int [] renter){

this.Disc_Num = Num;
this.Disc_Title = Title;
this.Disc _Renter = renter; вот здесь, правильно ли я строю коструктор для массива?
}
 
B

bybyby

#2
Как раз хотел сохдать такую же тему, а здесь уже есть. Так может кто знает, очень нужно.
 

LuMee

Well-known member
02.05.2006
477
0
#3
Массивы в конструктор передаются точно так же, как и значения любых других типов:
Код:
public MyClass {
private int id;
private int[] values;

public MyClass(int id, int[] values) {
this.id = id;
this.values = values;
}
}
И потом где-то в коде:
Код:
int i = 10;
int[] vals = new int[] { 1, 2, 3 };
MyClass obj = new MyClass(i, vals);
Естественно, следует понимать, что в этом коде vals и obj.values ссылаются на один и тот же массив. Если такое поведение нежелательно, то в конструкторе MyClass надо создавать новый массив и копировать в него значения из переданного.
 

SimpleGirl

New member
08.02.2014
4
0
#4
Подскажите пожалуйста а как отсортировать массив обектов не по String а по числам и в обратном порядке



public static void main (String[] args) throws IOException
{
Client ourClients[] = new Client[10];
ourClients[0] = new Client(1, "Nina", 3);
ourClients[1] = new Client(2, "Stephane", 1);
ourClients[2] = new Client(3, "Natalya", 1);
ourClients[3] = new Client(2, "Julie", 2);
Arrays.sort(ourClients, new Comparator<Client>()
{
private Collator collator = Collator.getInstance();

@Override
public int compare (Client o1, Client o2)
{
return o1 == null || o2 == null ? 1 : collator.compare(o1.getName(), o2.getName());
}
});
for (Client client : ourClients) {
System.out.println(client);
}
}
 

LuMee

Well-known member
02.05.2006
477
0
#5
Если прямо код написать, будет, наверное, неинтересно. Поэтому намекну: сортировкой управляет метод compare объекта-компаратора, который вторым параметром в Arrays.sort передается. Метод этот должен вернуть отрицательное значение, если o1 "меньше" o2, положительное - если "больше", ноль - если "равны". Итого: берем у сравниваемых объектов нужные "числа" (какое из двух, кстати?), сравниваем между собой и возвращаем то, что нужно (см. выше). Вроде, достаточно толсто намекнул :).