Ajuda! projeto java

Preciso de ajuda neste trabalho, se alguém puder me dar um norte, agradeço!

Classe ContaEnergia:

Atributos:
 data: String; data de referência da conta

 numInstalacao: int; número da instalação (identifica a
instalação/endereço)

 nomeConsumidor: String; - Nome do consumidor dono da
conta

 quantidade: int; - quantidade de Quilowatts consumidos

 paga: boolean; indica se a conta já foi paga ou não.
Métodos:

 public ContaEnergia (String data, int numInstalacao, String
nomeConsumidor, int quantidade);

 public float totalConta(float imposto, float valorKw);

 public String imprimir(); exibe os dados da conta. Exemplo:
o (instalação–data–consumidor–quantidadeKw–paga)
123456–10/04/019–Huguinho–100–não paga
o Não utilize espaço para separar as informações.

 Todos os atributos deverão ser privados com métodos públicos
get, mas somente o atributo “paga” deve ter set.

Classe GerenciaContaEnergia– reúne todas as contas criadas.

Atributos:

 contas: ArrayList; - objetos da classe ContaEnergia;
Métodos:

 public void cadastrarConta(ContaEnergia c);

 public boolean removerConta(int numInstalacao, String data)
– retorna true se conseguir encontrar e remover a conta, false
em caso contrário;

 public String listarTodas() – retorna uma String com os dados
de todas as contas. Utilize o método imprimir da conta
separando cada conta com um “;” sem espaço em branco
entre elas.
Exemplo:
121212–10/04/019–Huguinho–100–não paga; 343434–11/04/019–
Zezinho –240–paga; 55555–15/02/19–Luizinho –87–paga;

 public String buscarContas (int numInstalacao) – busca todas
as contas de uma instalação, guardando os dados dessas
contas em uma String e então retornando o resultado da
busca. Deve retornar uma lista com todas as datas de
vencimento da instalação separados por vírgula, sem espaço
entre eles. Exemplo: “01/01/19;01/02/19;01/03/19;”.

 public String listarContasNaoPagas() – busca todas as
contas que não foram pagas. Deve retornar uma lista com o
número da instalação, um caracter separador “-“, a data de
vencimento e um “;”.
Exemplo:
“1111-01/01/19;1111-01/02/19;2222-01/01/19;”.

 public ContaEnergia buscarConta(int numInstalacao, String
data) – busca uma conta pelo seu número, e a retorna se
encontrar. Caso a conta não exista, deve retornar null;

 public boolean pagarConta(int numInstalacao, String data) –
altera para true se encontrar a conta, false em caso contrário;

Classe AppContaEnergia

Método main: menu com acesso a todas as opções definidas na
classe GerenciaContaEnergia.

Qual é a dúvida?

ArrayList

Tenta fazer pelo menos o básico. O basico mesmo, pra a gente te ajudar. Não podemos fazer o seu trabalho, o intuito do fórum é ajudar e incentivar o estudo.

Vi que colocou outra resposta, cara, olha o tamanho da sua pergunta, vc diz que sua dúvida é no ArrayList, qual é a dúvida exatamente? Com o ArrayList vc pode inserir, remover, buscar, ordenar…

Vc tem razão, a primeira parte do exercício, até consigo desenvolver, mas o problema é quando chega no gerenciamento métodos e no ArrayList, travo totalmente.

Brother, desculpa, mas ainda tá muito vago…

O que vc entende por gerenciamento de métodos?

Os métodos não tem muito segredo:

public void teste(){
   System.out.println("teste");
}

Isso é um método, sem retorno, isso de retorno, quer dizer que ele não vai retornar um dado e nem vai usar o
return.
Se ele retornasse uma String, vc poderia chamar assim

System.out.println(teste());

E no ArrayList, vc quer aprender a usar, é isso?

Neste link está a documentação da classe ArrayList.

Qual é sua dúvida exatamente?

Um ArrayList é uma implementação de coleção do tipo Lista.

A diferença entre o ArrayList é o LinkedList é a estrutura de dados utilizada internamente para realizar a alocação dinâmica de memória.

Um LinkedList utiliza uma estrutura de elos encadeados (linked), que apontam para o elemento seguinte.

Um ArrayList utiliza um array de tamanho predeterminado, quando esse array é preenchido, um novo array com o dobro de capacidade é alocado internamente.