Изучал C++, сейчас изучаю JAVA. Дали задание: создать класс и второй класс(в этом классе должны быть методы), который им управляет. Кажется ничего сложного, но сказали код удаления и добавления объекта писать самому. Как я узнал в JAVA все массивы статические, то есть у них определенный размер (не подходит). Придется использовать ArrayList
, но у него эти методы написаны. Как написать эти методы самому не нашел. Нашел код этих методов, который в компиляторе написан, и просто не смог разобраться. Но как я понял, метод копирования объекта вообще на другом языке написан. Пытался в лоб увеличить, не получается (не понимаю, как через ArrayList
до массива с моими объектами достучаться).
Подскажите куда копать, может я вообще туплю и все проще?
Вот все что адекватно работает, но это смешно:
public static void Myadd (ArrayList<FootballMan> b, FootballMan a) {
b.add(a);
}
Про удаление: максимум, что я могу, это тоже самое что и с добавлением.
Полный код программы(intellij idea) :
import java.util.Scanner;
public class FootballMan {
private String surname, name, patronymic, data ,command,experience;
private int profit,intendifer;
FootballMan(FootballMan a){
profit=a.profit;
intendifer=a.intendifer;
surname=a.surname;
name=a.name;
patronymic=a.patronymic;
data=a.data;
command=a.command;
experience=a.experience;
}
FootballMan(){
Scanner str =new Scanner(System.in);
Scanner str1 =new Scanner(System.in);
System.out.print("Введите идентификатор спортсмена:");
intendifer=str.nextByte();
System.out.print(" ФИО (через пробел):");
surname=str.next();
name=str.next();
patronymic=str.next();
System.out.print("Дата рождения:");
data=str1.nextLine();
System.out.print("Команда за которую выступает спортсмен ");
command=str1.nextLine();
System.out.print("Стаж игры:");
experience=str1.nextLine();
System.out.print("Заработная плата:");
profit= str1.nextInt();
}
FootballMan(int intendifer,int profit,String surname,String name,String
patronymic,
String data , String command , String experience){
this.intendifer=intendifer;
this.profit=profit;
this.surname=surname;
this.name=name;
this.patronymic=patronymic;
this.data=data;
this.command=command;
this.experience=experience;
}
public int getI(){
return intendifer;
}
public void setI(byte intendifer){
this.intendifer=intendifer;
}
public String getS(){
return surname;
}
public void setS(String surname){
this.surname=surname;
}
public String getN(){
return name;
}
public void setN(String name){
this.name=name;
}
public String getP(){
return patronymic;
}
public void setP(String patronymic){
this.patronymic=patronymic;
}
public String getD(){
return data;
}
public void setD(String data){
this.data=data;
}
public String getC(){
return command;
}
public void setC(String command){
this.command=command;
}
public String getE(){
return experience;
}
public void setE(String experience){
this.experience=experience;
}
public int getProfit(){
return profit;
}
public void setProfit(int profit){
this.profit=profit;
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class Manager {
public static void sort(FootballMan[] arr) {
FootballMan temp=new FootballMan(5,5,"ad","ad","ad","ad","ad","ad");
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j].getProfit() < arr[j + 1].getProfit()) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void search(FootballMan[] arr) {
int cod;
System.out.print("Введите индентификатор игрока:");
Scanner ad = new Scanner(System.in);
cod = ad.nextInt();
for(int i=0 ; i<arr.length;i++)
{if(arr[i].getI()==cod)
System.out.print(arr[i].getN()+" "+arr[i].getS()+" "+arr[i].getP());
break;}
}
public static void editing(FootballMan[] arr,int cod) {
String comand;
int i, zp;
byte key;
for (i = 0; i < arr.length; i++) {
if (arr[i].getI() == cod)
break;
}
System.out.println("1-Изменить запрлату игрока");
System.out.println("2-Изменить команду");
Scanner scan = new Scanner(System.in);
Scanner scan1 = new Scanner(System.in);
key = scan.nextByte();
if (key == 1) {
System.out.print("Введите желаемую зарплату:");
zp = scan.nextInt();
arr[i].setProfit(zp);
} else {
System.out.println("Введите команду:");
comand = scan1.nextLine();
arr[i].setC(comand);
}
}
public static void Myadd (ArrayList<FootballMan> b,FootballMan a){
b.add(a);
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
FootballMan obj = new FootballMan(33, 5, "a2d", "ad", "3ad", "ad",
"ad1", "ad");
ArrayList<FootballMan> arr = new ArrayList<>();
arr.add(obj);
}
}
Задание:
ArrayList
- вполне подходит для решения задачи, если можно и нужно хранить повторяющиеся объекты FootballMan
. То есть в нем можно хранить список ваших FootballMan
-объектов.
Будет примерно так:
public class Manager {
private List<FootballMan> list = new ArrayList<FootballMan>();
public Manager() {}
public void setFootballMan(FootballMan footballMan) {
list.add(footballMan);
}
public void getFootballById(int id) {
list.get(id);
}
public FootballMan findFootballById(какие-то параметры для поиска) {
...поиск...
list.get(n);
}
public void delFootballById(какие-то параметры) {
...поиск...
list.remove(n);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Работаю с wiki api, моя задача получить url страницы по idИспользую retrofit2
Помогите разобраться с отрисовкой графиков через graph viewИмеется время в unix time
Как известно у Xiaomi есть своя система разрешений и работает она до 6 андроида, где новая система запроса разрешений появилась повсеместноЯ...
В главном окне (которое появляется после запуска приложения) я должен сделать главное меню, в нем должен быть раздел window, в этом разделе я должен...