我正在试图弄清楚如何按ArrayList中的元素进行搜索。
这是我的代码:
package trabalho.arquivos;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;
public class TrabalhoArquivosAlt {
public static void main(String[] args) throws IOException {
ArrayList<String> agenda = new ArrayList<String>();
Scanner ler = new Scanner(System.in);
int opcao;
importar(agenda);
do {
System.out.printf("----------------------------MENU----------------------------\n");
System.out.printf("[ 1 ] Incluir\n");
System.out.printf("[ 2 ] Excluir\n");
System.out.printf("[ 3 ] Listar\n");
System.out.printf("[ 4 ] Pesquisar\n");
System.out.printf("[ 0 ] Encerrar (Use esta opção para salvar as modificações)\n");
System.out.printf("------------------------------------------------------------\n");
System.out.printf("\nOpção Desejada: ");
opcao = ler.nextInt();
switch (opcao) {
case 1: incluir(agenda); break;
case 2: excluir(agenda); break;
case 3: listar(agenda); break;
case 4: pesquisar(agenda);
}
System.out.printf("\n\n");
} while (opcao != 0);
exportar(agenda);
}
public static void importar(ArrayList<String> agenda) {
try {
FileReader arq = new FileReader("arquivo.txt");
BufferedReader lerArq = new BufferedReader(arq);
String linha = lerArq.readLine(); // lê a primeira linha
// a variável "linha" recebe o valor "null" quando o processo
// de repetição atingir o final do arquivo texto
while (linha != null) {
agenda.add(linha);
linha = lerArq.readLine(); // lê da segunda até a última linha
}
arq.close();
} catch (IOException e) {
System.err.printf("Erro na abertura do arquivo: %s.",
e.getMessage());
}
}
public static void exportar(ArrayList<String> agenda)
throws IOException {
FileWriter arq = new FileWriter("arquivo.txt");
PrintWriter gravarArq = new PrintWriter(arq);
int i, n = agenda.size();
for (i=0; i<n; i++) {
gravarArq.printf("%s%n", agenda.get(i));
}
gravarArq.close();
}
public static void incluir(ArrayList<String> agenda) {
Scanner ler = new Scanner(System.in);
String nome;
System.out.printf("\nInforme o nome do contato:\n");
nome = ler.nextLine();
// grava os dados no final da "lista"
agenda.add(nome);
}
public static void excluir(ArrayList<String> agenda) {
Scanner ler = new Scanner(System.in);
int i;
listar(agenda);
System.out.printf("\nInforme o número a ser excluído:\n");
i = ler.nextInt();
try {
agenda.remove(i);
} catch (IndexOutOfBoundsException e) {
// exceção lançada para indicar que um índice (i)
// está fora do intervalo válido (de 0 até agenda.size()-1)
System.out.printf("\nErro: número inválido (%s).\n\n",
e.getMessage());
}
}
public static void listar(ArrayList<String> agenda) {
System.out.printf("\nLista de todos os nomes:\n");
int i, n = agenda.size();
for (i=0; i<n; i++) {
System.out.printf("%d - %s\n", i, agenda.get(i));
}
System.out.printf("------------------------------------------------------------");
}
public static void pesquisar(ArrayList<String> agenda) {
Scanner ler = new Scanner(System.in);
System.out.printf("\nInforme o número do contato:\n");
}
}
例如,我的列表是:
我希望找到元素为“1”的人,而不是节目搜索元素“1”并打印他的名字“Gilson”。