Ir para conteúdo
Fórum Script Brasil
  • 0

Java SubArray


bitDev

Pergunta

Olá, pessoal

Tenho pouca experiência em Java. Estou escrevendo um programa, e preciso de um método que busque um Array int[] dentro de um Aray int[][]. Se houver um método nativo, não terei que escrevê-lo, mas se não houver, gostaria de alguma dica de como implementá-lo.
Exemplo:
Tenho o Array int[][]: {{0,1,3,4},{3,7,1,0,8},{5,0,1},{4,6,2,7,9,3},{7,3,5,2,1,4,8}}
Preciso buscar dentro dele ocorrências do array int[] {0,1}
No exemplo dado, os elementos do array grande, que contém {0,1} são {0,1,3,4} e {5,0,1}

Se alguém souber implementar o método e puder ajudar, desde já agradeço.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Olá a todos, segue um exemplo simples.

package buscavetor;

import java.util.ArrayList;

public class BuscaVetor {
	
	public static void main(String[] args){
		//exemplo de uso.
		int[][] vetor=new int[][]{{0,1,3,4},{3,7,1,0,8},{5,0,1},{4,6,2,7,9,3},{7,3,5,2,1,4,8}};
		int[] objPesquisa=new int[]{0,1};
		
		ArrayList<Integer> resposta=pesquisaVetor(vetor, objPesquisa);
		
		//imprimindo resposta
		for(int i=0; i<resposta.size(); i++){
			System.out.println(resposta.get(i));
		}
	}
	/****************************
	 * 
	 * @param vetor
	 * @param objPesquisa
	 * @return
	 * recebe um vetor de vetores e um vetor, ambos de números inteiros.
	 *  Retorna uma lista de inteiros, essa lista contem os indices dos vetores
	 *  que contém o vetor de pesquisa.
	 */
	public static ArrayList<Integer> pesquisaVetor(int[][] vetor, int[] objPesquisa){
				
		ArrayList<Integer> resposta=new ArrayList<Integer>();
		int posicaoComparador;
		
		for(int i=0; i<vetor.length; i++){
			posicaoComparador=0;
			for(int j=0; j<vetor[i].length; j++){
				//verifica se o tamanho vetor objeto de pesquisa é menor ou igual ao vetor que sera comparado.
				if(objPesquisa.length<=vetor[i].length){
					if(posicaoComparador<objPesquisa.length && vetor[i][j]==objPesquisa[posicaoComparador] ){
						posicaoComparador++;
					}
				}
			}
			if(posicaoComparador==objPesquisa.length){
				resposta.add(i);
			}
		}
		return resposta;
	}

}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...