Como buscar no Arraylist em Java

Gente, alguém poderia me ajuda em como eu posso imprimir apenas os dados de um tipo e pesquisa pelo o nome e imprimir na tela
package ativ2;

import java.util.ArrayList;

public class Itens extends CatalogoItens {
private static ArrayList listaitens = new ArrayList<>();

public static ArrayList<CatalogoItens> getListaitens() {
    return listaitens;
}

//adicionar 

static public void adiciona(CatalogoItens c){
    listaitens.add(c);
}


// listar os itens

static public String listar(){
    String saida = "";
    
    for(CatalogoItens c : listaitens){
        int i = 0;
        
        
        saida += c.toString();
        
    }
    return saida;
}

// pesquisar  por titulo
static public int pesquisar(String titulo){
    int qtd=0;
    for(CatalogoItens c : listaitens){
        if(c.getTitulo().equalsIgnoreCase(titulo)){
            qtd++;
            
        }
    }
    return qtd;
}
// pesquisar por tipo

static public String pesTipo(String tipo){
    for(CatalogoItens c : listaitens){
        if(c.getTipo().equalsIgnoreCase(tipo)){
            listaitens.contains(c);
        }
    }
    return tipo;
}

Se a ideia é pesquisar o CatalogoItens pelo tipo, vc pode fazer assim:

static public CatalogoItens pesTipo(String tipo){
    for(CatalogoItens c : listaitens){
        if(c.getTipo().equalsIgnoreCase(tipo)){
            return c;
        }
    }
    return null; // não encontrou
}
1 curtida

Ainda não estou conseguindo imprimir uma listagem por tipo de item, fica imprimindo a lista toda, e é para imprimir os dados por exemplo tipo livro, imprimir todos os dados de livros apenas

Ah sim. O exemplo que passei foi baseado no seu código supondo que é um item por tipo. Como há mais de um item por tipo, há mais de uma forma de fazer, veja:

1ª forma:

public List<CatalogoItens> pesTipo(String tipo){
    List<CatalogoItens> resultado = new ArrayList<>();

    for(CatalogoItens c : listaitens){
        if(c.getTipo().equalsIgnoreCase(tipo)){
            resultado.add(c);
        }
    }
    return resultado;
}

2ª forma (java 8+):

public List<CatalogoItens> pesTipo(String tipo) {
    return listaitens.stream()
        .filter(c -> c.getTipo().equalsIgnoreCase(tipo))
        .collect(Collectors.toList());
}