Спроектируйте класс Array.
Массив должен обладать двумя свойствами:
public int size
public int [] data
В классе Array должен быть реализован метод:
public void add(int element)
Данный метод должен помещать новый элемент в конец массива, а длину массива увеличивать на 1.
В случае переполнения - необходимо увеличить длину массива data (необходимо выделить новый кусок большей длины, и скопировать в него данные, добавленные в data на предыдущих шагах)
Проверка класса осуществляется следующим способом:
Создается экземпляр класса inst
Случайным образом формируется число N от 1 до 105
Случайные числа от 1 до 100 - N раз добавляются добавляются в массив методом add
Проверяется inst.size, inst.data[i], для i от 0 до N-1
Задача с одной стороны простая, но я запутался.
Насчет мейна и написанного в нем инстанса, где будет проходить проверка, все вроде просто:
Инстанс:
Array inst = new Array() ;
int r = случайное число;
inst.add(r);
System.out.println (inst.size) ;
System.out.println (inst.data[0]);
А вот что в классе Array написать, я не соображаю.
public class Array {
public int size;
public int[] data;
public void add(int element) {
int[] r = {1,2,3};
r = Arrays.copyOf(r, r.length + 1);
}
}
Естественно, это у меня не работает, хотя, как еще изменить размер массива, я не соображаю.
Попробовал так:
class Array{
public int size;
public int [] data;
public void add(int element){
if(size == data.length-1)
Arrays.copyOf(data, data.length*2);
data[size++] = element;
}
}
Но все равно не проходит: вываливается NullPointerException
.
public class Array {
public int size = 0;
public int [] data = new int[0];
public void add(int element) {
data = Arrays.copyOf(data, size + 1);
data[size] = element;
size++;
}
}
Если хотите, можете ввести начальный размер массива и проверять, переполнится ли он:
public int size = 0;
public int [] data = new int[10];
public void add(int element) {
if(size == data.length)
data = Arrays.copyOf(data, size + 1);
data[size] = element;
size++;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
GoogleDrive для ПК умеет синхронизировать определённую папку, можно ли это настроить как-то на Андроиде? Если да, то было бы отлично сделать это...
Я использую Timer и устанавливаю таймер через метод shedule(), задавая повтор каждые N секундНо столкнулся с проблемой, мне необходимо запускать...
Мне необходимо запустить сразу несколько разных проекта на эклипсе, как это можно сделать?
Установил logstash по инструкции с оф сайта под windows https://wwwelastic