java Capitulo 1 - Estrutura de Dados Caelum

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java Capitulo 1 - Estrutura de Dados Caelum相关的知识,希望对你有一定的参考价值。

public class Vetor {
	// Declarando e Inicializando um array de Aluno com capacidade 100.
	private Aluno[] alunos = new Aluno[100];

	private int totalDeAlunos;

	public void adiciona(Aluno aluno) {
		this.alunos[totalDeAlunos] = aluno;
		this.totalDeAlunos++;
	}

	public void adiciona(int posicao, Aluno aluno) {
		if (!this.posicaoValida(posicao)) {
			throw new IllegalArgumentException("Posicao inválida");
		}
		
		for(int i = this.totalDeAlunos - 1; i >= posicao; i--){
			this.alunos[i + 1] = this.alunos[i];
		}
		
		this.alunos[posicao] = aluno;
		this.totalDeAlunos++;		
	}

	private boolean posicaoValida(int posicao) {
		return posicao >= 0 && posicao <= this.totalDeAlunos;
	}

	public Aluno pega(int posicao) {
		if (!posicaoOcupada(posicao)) {
			throw new IllegalArgumentException("Posicao invalida");
		}

		return this.alunos[posicao];
	}

	private boolean posicaoOcupada(int posicao) {
		return posicao >= 0 && posicao < this.totalDeAlunos;
	}

	public void remove(int posicao) {
		if(posicaoOcupada(posicao)){	
			for(int i = posicao; i < this.totalDeAlunos -1; i++){
				this.alunos[i] = this.alunos[i + 1];
			}
			this.totalDeAlunos--;
		}else{
			throw new IllegalArgumentException("Item inexistente");
		}
		
	}

	public boolean contem(Aluno aluno) {
		for (int i = 0; i < this.totalDeAlunos; i++) {
			if (aluno.equals(this.alunos[i])) {
				return true;
			}
		}
		return false;
	}

	public int tamanho() {
		return this.totalDeAlunos;
	}

	public String toString() {
		if (this.totalDeAlunos == 0) {
			return "[]";
		}
		StringBuilder builder = new StringBuilder();
		builder.append("[");
		for (int i = 0; i < this.totalDeAlunos - 1; i++) {
			builder.append(this.alunos[i]);
			builder.append(", ");
		}
		builder.append(this.alunos[this.totalDeAlunos - 1]);
		builder.append("]");
		return builder.toString();
	}
}

以上是关于java Capitulo 1 - Estrutura de Dados Caelum的主要内容,如果未能解决你的问题,请参考以下文章

1-1-1 java初识--java概述

1-1-1 java初识--java概述

2022年Java学习笔记目录

Java核心技术之Java概述与开发环境搭建

Java学习笔记1.1.1 搭建Java开发环境 - Java概述

Java学习手册的目 录