Transcrições
1. Introdução: A codificação pode ser muito desafiadora e, ao mesmo tempo, extremamente agradável. Olá a todos. Sou unidades Hadi e isto é Programação para Todo Mundo. Agora, se você não sabe nada sobre programação, eu acho que você deve começar com as duas classes anteriores. E o primeiro nós vendemos Java e Eclipse e aprendemos sobre alguns conceitos básicos, como tipos de dados, tomada de decisões, loops e muito mais, mas tudo de uma maneira geral. E na segunda classe com um mais profundo para esses conceitos de criação de classes e objetos, fazer usando matrizes e ArrayLists. Agora, nesta aula, vamos explorar alguns conceitos antigos e novos. Alguns deles já são mencionados
na primeira classe que aqui chegamos ao fundo deles. Dito isso, você pode começar e eu espero que você goste.
2. Material: Como de costume, vamos começar com o nosso material. Então, o que vamos cobrir? Primeiro de tudo, vamos falar sobre herança, e então vamos introduzir o polimorfismo e como usá-lo por herança. E então vamos introduzir um novo conceito em programação, recursão e como usá-lo. Depois disso, irá passar para algoritmos de classificação. Então, se tivéssemos, se tivermos uma matriz ou uma lista de arrays de inteiros, strings, caracteres, aprenderemos a resolvê-los. E depois falaremos sobre algoritmos de busca. Então, se tivermos um inteiro específico, por exemplo, como encontrá-lo em uma matriz específica. E por último, vamos falar sobre a classe Big Integer. Depois disso, resolverá alguns problemas em cada tópico como de costume. E por último, temos o nosso projecto. Então é isso. E vamos começar.
3. Herança: Em primeiro lugar, começamos com herança, técnica
fundamental para organizar e criar aulas. É uma idéia simples, mas poderosa que implementa é a forma como projetamos software orientado a objetos. Você pode dizer que uma classe é para um objeto o que um projeto é abrigar. Muitas casas podem ser criadas a partir do mesmo projeto. Eles são essencialmente a mesma casa em locais
diferentes com pessoas diferentes vivendo neles. Agora, suponha que você quer abrigar que é semelhante a outro, mas com algumas características diferentes ou adicionais. Você quer começar com o mesmo blueprint básico, mas modifique-o para atender a necessidades novas e ligeiramente diferentes. Muitos empreendimentos habitacionais estão criando dessa maneira. As casas no desenvolvimento têm o mesmo layout do núcleo, mas têm características únicas. Por exemplo, todos eles podem ser
casas de nível dividido com a mesma configuração básica de noivo, mas alguns têm uma lareira ou um porão completo, enquanto outros não. Agora, por herança, a nova classe
contém automaticamente as variáveis e métodos na classe original, e então eles deixam a classe conforme necessário. O programador pode adicionar novas variáveis e métodos para a classe derivada ou modificar os herdados. A classe original que é usada para derivar um novo é chamada de classe banda, superclasse ou classe base. Então aqui está o pai de Pictionary e o copo. A classe derivada é chamada de classe filho ou subclasse. E Java usa a palavra reservada estende para indicar que a nova classe está sendo derivada de uma classe existente. Agora, o processo de herança deve estabelecer um é uma relação entre duas classes. Então temos uma relação entre livro e dicionário. Ou seja, a classe filho deve ser uma versão mais específica da classe pai. Por exemplo, dicionário é um livro, mas nem todos os livros são dicionários. Agora, se tal afirmação não faz sentido, então esta relação provavelmente não é um uso apropriado de herança. Então agora vamos demonstrar o uso de um método herdado. Por exemplo, temos palavras, temos aqui o nosso método principal. E dicionário terá três métodos. Problema de computador, definir definições ,
obter definições e um inteiro variável. E por último, a nossa turma de pais, o livro. Temos uma variável n e dois métodos definir páginas e obter pêssegos. Vamos em frente e criar nossas três classes. Temos Cook e dicionário V8. E por último, palavra. Óculos. Então agora vamos começar com o livro. Então esta é a classe pai da classe derivada para usá-lo para demonstrar herança. Então nós temos vegetais e inteiros, digamos que é protegido e, em seguida, vai explicá-lo mais tarde. E você páginas iguais a 1500 páginas. E temos dois métodos. Primeiro de tudo, set page, que é pagers, dar-lhe um valor de inteiro como um parâmetro, num, e que as páginas iguais a este valor. Então agora, em vez das praias e ainda praias, para retornar o valor das páginas. Só devolvemos páginas. Agora, o que é o protegido modificado? Como vimos, os modificadores de visibilidade são usados para controlar o acesso aos membros de uma classe. Este efeito se estende ao processo de herança também. Portanto, métodos privados e variáveis da classe pai não podem ser referenciados na classe filho ou através de um objeto da classe filho. E se declararmos uma variável com visibilidade
pública para que a classe derivada possa referenciá-lo. Nós violamos o princípio do encapsulamento. Portanto, Java fornece um terceiro modificadores de visibilidade protegidos. Então estamos usando protegido. Podemos ter acesso a esta variável e nossa classe filho, dicionário. Agora, é bom para o dicionário. E aqui temos nossa aula de dicionário. Então esta classe, dicionário, que é um livro, eles são derivados da classe livro. Então vamos salvar este dicionário de alunos. Temos três métodos e uma variável. Vamos usar o privado. Modifique essa definição para igual a 2005500, por exemplo. Mas temos 52.500 definições. Agora, vamos criar nosso primeiro método para calcular o problema JHU. Agora, como dissemos, podemos usar e o livro, porque dissemos que eles são protegidos. E calcular as proporções, nós simplesmente retornamos uma definição W dividida pelo problema. Sinto muito, sobre quantas páginas, idades e problemas estendemos do trabalho. E agora temos ambos método de descanso. Agora, método é definir definições. Então, como de costume, nações com dormência. E dissemos que os médicos eram iguais a nove. E por último, temos as definições get para retornar quantas definições há uma definição de inteiro def sem e simplesmente retornar definições. Então agora esses são nossos métodos e vamos em frente e usá-los em nossa classe mundial. Então ele saiu da classe. Então este é o nosso método principal e nosso dicionário de objetos em W. emitido agora vamos trabalhar com ele. Então temos algum método. Vamos imprimir o número de páginas. Então, número de páginas. E você vai usar praias de “get”. Ainda temos que terminar páginas de pular. E se formos em frente e rodarmos este código, obtemos o número de páginas, cento e quinhentas. E vamos também imprimir o número de definições diferentes. Diamos definições e definições. Então temos 52.500 definições. E por último, vamos calculá-los simplesmente por definições. Portanto, não quantas definições que está na página e usar W.com e imprimi-lo. Temos definições. Definição de trinta e cinco. Agora, lembre-se que também definimos páginas e definir definição. Então, por exemplo, se queremos mudar as páginas, basta usar W ponto definido. H é, por exemplo, dez e nações para a qualidade. E se imprimirmos as Definições, página mais uma vez, outro número que é igual a quatro. Então este é o fim para este vídeo. Vejo você na próxima.
4. Super referência: Agora temos também uma referência com a qual devemos estar familiarizados. Esta, a super referência. Assim, a palavra reservada Super pode ser usada em uma classe para se referir à sua classe pai. Assim, podemos ter acesso ao membro de um pai usando a super referência. Agora, a palavra super se refere depende da classe em que ela é usada. Para. Agora, vamos demonstrar o uso de referência superior permanecerá. Com estes exemplos. Temos nossas rotas de classe mundial, temos nosso método principal, e temos o dicionário, e estendemos o livro. E, por último, temos a nossa aula. Agora, suponha que temos em nosso livro um construtor. Então isso definiu um construtor aqui, dizendo que o setor público tem o mesmo nome que vidro. E vamos dar-lhe um parâmetro de inteiros, que é o número de pontes. E dentro deste construtor, redefinir as páginas para ser igual às praias dadas pelo construtor. E agora este é o nosso construtor na aula do livro. Agora vamos criar outro construtor em classe de dicionário. Então nós simplesmente criamos dicionário outlet e vamos dar-lhe o valor duas páginas e definições. Vamos mudar isso para o Então vamos primeiro de todas as definições iguais à definição. E então agora eu posso invocar o super, o construtor do pai usando a super referência. Tudo bem, super e dê-lhe o valor dos religiosos. E agora usamos o zelador. Assim, o construtor de dicionário leva dois valores inteiros como parâmetros. Temos páginas e definições que representam um número de páginas e um número de definições no livro. Então, porque a classe livro já tem um construtor que executa o trabalho para configurar o caminho do dicionário que foram herdados. Contamos com construtor de convés para fazer esse trabalho. Então, em vez de dizer que páginas iguais ao, esta base, nós simplesmente contar com este construtor da classe, dizendo super. Então ele vai para o construtor em classe livro e disse páginas para ser igual a estas páginas. Agora, um construtor carregado é responsável por chamar o construtor de seu pai. Geralmente, a primeira linha do construtor deve usar a chamada de super referência para o construtor do par. E se esse código não existir, Java fará automaticamente uma chamada para super No início do construtor. Então, esta regra garante que aparentemente inicializa suas variáveis antes que o construtor de classe filho comece a executar. Usando a referência super para invocar
construtor avançado pode ser feito apenas o construtor filho. E se incluído, deve ser a primeira linha do construtor. Assim, a super referência também pode ser usado para fazer referência a outras variáveis e métodos definidos na classe pai. E usamos esses dados de técnica. Passando para herança múltipla, a abordagem de
Java para herança é chamada de herança única. Este termo significa que a classe derivada pode ter apenas um pai. Algumas linguagens orientadas a objetos permitem que uma classe filho tenha várias bandas. Essa abordagem é chamada de herança múltipla e é ocasionalmente útil para descrever objetos que estão entre duas categorias de classes. Por exemplo, suponha que tivéssemos uma classe e o caminhão da classe. E queríamos criar uma nova classe chamada caminhonete. Uma caminhonete é um pouco como um carro e um pouco como um caminhão. Com herança única, devemos decidir se é um melhor,
se é melhor derivar o novo cara de sala de aula por caminhão com herança múltipla, ele pode ser derivado de ambos, como mostrado nesta figura. herança múltipla funciona bem em algumas situações, mas vem com um preço quando, tanto caminhão quanto carro têm métodos com o mesmo nome. Qual método? caminhonete herdou? A resposta a esta pergunta é complexa e depende das regras da linguagem que suporta herança múltipla. Os designers da linguagem Java explicitamente decidiram não suportar herança múltipla. Em vez disso, podemos confiar em herança e interfaces para fornecer os melhores recursos de herança múltipla sem a complexidade adicional. Embora uma classe Java pode ser derivada de apenas uma classe pai, pode implementar várias interfaces. Portanto, podemos interagir com uma determinada classe
nas formas específicas com herança e interfaces, enquanto herdamos as informações principais de uma classe pai e usando interfaces. E falaremos sobre interfaces mais tarde. Então isso é para a herança super e múltipla. E no próximo vídeo, vamos aprender como uma classe filho pode substituir a definição dos pais de um método herdado.
5. Métodos de orientação: Passando para métodos de substituição. Quando uma classe filho define um método com o mesmo nome e assinatura como um método na classe pai, dizemos que a virgem da criança substitui a versão do pai em favor de sua própria. A necessidade de substituição ocorre frequentemente em situações de herança. Então vamos em frente e demonstrar o uso de um método substituído. Cria um novo pacote, nomeie-o. Certo? E, e este pacote irá criar três classes. O primeiro chamaremos de mensagem. O segundo será duas vezes. E por último, vamos criar uma classe chamada pensamento. Então temos três aulas. E a mensagem. Aqui temos o nosso método principal e vamos trabalhar mais tarde. Mas, por enquanto, vamos ligar vício e pensamento. Então, no terceiro é depender classe ea classe conselho é a criança estender. E vamos criar o mesmo método. O mesmo método e as duas classes. Então, em pensamento, iria criar uma mensagem de voz pública sem parâmetro, simplesmente imprimir. Esta é a mensagem do pai. E a aula de conselhos teria o mesmo método. Mensagem pública, pública. Sem parâmetro, ele simplesmente imprime. Esta é uma mensagem da turma. E usaremos a super super mensagem para invocar explicitamente a virgem dos pais. Agora, vamos em frente e usar você tem aqui um erro indefinido para o tempo. Você precisa salvar isso e tudo corretamente. E agora vamos para a nossa mensagem. Vamos usar dois objetos. Um para conselhos, você tem conselhos, um novo conselho, e a mesma coisa para o sobrenome e o novo. Agora, vamos usar o mesmo método nas duas vantagens. Então dizemos um.me e a mensagem que os está trocando, use em primeiro lugar, essa chave e depois imprima uma linha. Então vamos ver o que vai acontecer. Então nós imprimimos que esta é uma mensagem da classe pai e, em seguida, alinhados. Então esta é a nossa saída de D, aquela mensagem. E então esta é a saída de um, aquela mensagem. Em uma mensagem receberá, esta é uma mensagem da classe filho. E desde que usamos aqui, o Super, invocamos o quê? A mensagem da terceira classe que temos aqui. Esta é uma mensagem da classe pai, então vamos imprimir uma mensagem da classe pai. Agora, um método pode ser definido com o modificador final. E então Jet Criança Cass não pode anular um método final. Esta técnica é usada para garantir que a classe derivada usa uma definição particular de um método. E agora vamos falar sobre variáveis de sombreamento. Embora não seja recomendado para a classe interna, para declarar uma variável com o mesmo nome que uma que é herdada do pai. Agora, há uma diferença entre a declarar
uma variável e simplesmente dando um herdado por um valor particular. Por exemplo, se tivermos uma variável inteira aqui na terceira classe, podemos dar-lhe um valor na classe advice, mas não é recomendado redeclará-lo como, por exemplo, uma string ou como um duplo. Agora, esta declaração cria confusão, e esta confusão causa problemas e não serve para nenhum propósito útil. Então declaração de matriz de um nome de variável particular poderia mudar seu estilo, mas isto é, e geralmente variáveis de sombreamento desnecessárias e gerais devem ser evitadas. Então isso é para variáveis de sombreamento e métodos de substituição. Vejo você no próximo vídeo.
6. Hierarquias do curso: Agora vamos falar sobre hierarquias de classe. elenco filho derivado de um dos pais pode ser o pai de sua própria creche. Assim, várias classes podem ser derivadas de um único pai. Portanto, as relações de herança muitas vezes se desenvolvem em hierarquias de classe. Então aqui, este diagrama nos mostra uma hierarquia de classes que inclui a relação de herança entre mamífero e classe hospedeira, por exemplo, pássaro e papagaio, animal e nascimento. Não há limite para o número de filhos que uma classe pode ter, ou o número de níveis aos quais a hierarquia de classes pode estender a filhos que o mesmo pai é chamado irmãos. Então aqui, o cavalo e o mal são irmãos. Embora irmão derramar as características transmitidas pelo pai comum, eles não estão relacionados por herança porque um não é usado para derivar o outro. Nas hierarquias S, as feições devem ser mantidas o mais alto na hierarquia quanto razoavelmente possível. Dessa forma, a única característica explicitamente estabelecer o elenco filho são aqueles que tornam a classe distinta de seu pai e de seus irmãos. Então, por exemplo, se temos método em animal, vamos dizer. Então todos os animais comem. Então vamos mantê-lo na aula de animais. No entanto, nem todos os animais voam. Então este método voar, podemos criar e a classe pássaro. Assim, desta forma também facilita as atividades de
manutenção porque quando as mudanças são feitas permanentes, elas são automaticamente refletidas nos descendentes. Lembre-se sempre de manter o é um relacionamento quando construção de hierarquias de classe não é uma única melhor organização de hierarquia para todas as situações. As decisões que você toma quando você está projetando uma hierarquia de classes, restringem e orientam decisões de design mais detalhadas e opções de implementação. Então você deve tomá-los com muito cuidado. Passando para a classe de objeto em Java, todas as classes são derivadas, em última análise, da classe de objeto de uma classe. Definição não usa a cláusula extends para derivar explicitamente de outra classe. E essa classe é automaticamente derivada da classe de objeto por padrão. Então, quando dizemos em, por exemplo, vamos criar uma classe. E vamos dar um nome. A coisa terá uma classe chamada coisa. Esta representação é equivalente a dizer estende objeto. Como todas as classes são derivadas algum objeto em métodos
públicos de um objeto são herdados pela classe Java API. Eles podem ser invocados através de qualquer objeto criado e qualquer programa Java. A classe Object é definida no pacote
java.lang da biblioteca de classes padrão do Java. Então, nós temos alguns métodos nesta classe de objeto, como se viu, vem usando métodos de objeto, enquanto muitas vezes em nossos exemplos, o método toString, por exemplo, é definido na classe de objeto. Assim, o método de coloração pode ser chamado em qualquer objeto. E é por isso que quando definimos um método toString e uma classe, estamos realmente substituindo uma definição herdada. A definição para toString fornecida pela classe de objeto. Também temos outro método que vemos várias vezes antes. Isso é igual a ele retorna true se o objeto é um alias do objeto especificado. Classes muitas vezes substituem a definição herdada do método.equals em favor de uma definição mais apropriada. Por exemplo, a classe String substitui igual a, modo que ele retorna true somente se ambas as strings contêm os mesmos caracteres na mesma ordem. Então isso é para hierarquias de classe. Vejo você no próximo vídeo.
7. Visibilidade: Como discutimos anteriormente, todas as variáveis e métodos, mesmo os membros privados que são definidos em uma classe pai, são herdados pelos clubes infantis. Eles existem para um objeto da classe derivada, mesmo que eles não podem ser referenciados diretamente, eles podem ser referenciados indiretamente. Então, vejamos um exemplo que demonstra essa situação. Vamos em frente e criar um novo pacote, e vamos nomeá-lo. Visibilidade. E dentro deste pacote terá três classes. Como de costume. Vamos criar uma classe chamada analisador de alimentos. E aqui temos o nosso método principal. E outra aula. Vamos dar um nome a ele. Por exemplo, item de comida, exemplo do Alasca. Vamos chamá-lo de beta. Então agora temos três aulas. Coloque analisador, comida e pizza. Assim, o item do pé é vidro dependente e pizza se estende. O pé é criar alguns métodos. Então NPDES irá criar, por exemplo, vamos criar um construtor. Simplesmente pizza pública, dar-lhe um valor de GM e simplesmente chamado o método super e colocar item que poderia criar dados. Então este, por exemplo, este super Vamos tomar dois parâmetros, o g que obtemos a partir do método de pizza. E, por exemplo, digamos oito. E agora vamos criar o método no item alimentar para que o entendamos melhor. Agora, aqui no item alimentar é criar três inteiros. Como criar galerias particulares. 30 gramas. Vamos chegar às nove. E outro soldado. Mas gramas. E, por último, criar um protegido. Agora vamos criar o nosso construído e ele vai levar dois parâmetros. Vamos chamá-lo item de comida. E você pega dois parâmetros. Um número de petagramas, gramas, e o segundo é o número de servir, servir. Então agora, quando chamamos o Super aqui, nós realmente chamamos o construtor. E a classe de itens alimentares, levará dois parâmetros, então temos dois parâmetros. Agora. Vamos em frente e usá-lo. Temos gramas de gordura e assim bancos. Então apenas atribuiu gramas de gordura igual ao número de gramas que já recebemos do usuário. E a mesma coisa para as porções será número de porções. Agora vamos criar alguns métodos. Por exemplo, para retornar as calorias, gramas de
gordura, multiplicadas pelas calorias por planta. E outro método para calcular as calorias por porção, simplesmente virar nomes, galerias, porções, e nós simplesmente calorias e divididos pelo Serviço. Então vamos voltar galerias para virar. Terroristas terão o método de calorias. Nós simplesmente o chamamos usando baterias e dividi-lo pelo número de porções que temos o número de porções em servir. E estas são as nossas calorias por método de porção. Agora, vamos em frente e usar este método e nossa classe principal. Então vamos criar uma pizza. Pizza. Vamos chamá-lo de pizza especial com um valor de 275. E vamos imprimir as calorias por porção. Calorias. Isso é por porção. E nós vamos obter calorias especiais por porção e executar o código vai obter calorias por porção, 309. Agora, a classe de pizza é derivada da classe de itens alimentares, mas não adiciona nenhuma funcionalidade ou dados especiais. Isso é construtor chama o construtor de itens alimentares usando a super referência, afirmando que eles são oito porções de pizza. O objeto pizza aqui chamado especial, está no método principal e usado para invocar o método calorias por porção, que é definido como um método público de item alimentar. Agora, aqui nossa mensagem deve ser privada. E o que fizemos aqui é que podíamos calorias por porção, que é um método público. Então, essas calorias por porção chama calorias. Calorias é um método privado e galerias chamadas gramas de gordura e caixas por grama, e eles também são privados. Então, o que estamos tentando dizer aqui que mesmo que a classe de pizza não possa referenciar explicitamente
calorias, calorias por gramas, e cinco gramas. Eles estão disponíveis para uso diretamente. E o objeto da pizza precisa de boné. Objeto bizarro não pode ser usado dez vezes o método de calorias, mas pode chamar um método que pode. Assim, o objeto de item de pé nunca foi criado ou necessário. Agora, como, por exemplo, calorias por grama é, temos certeza absoluta de que é igual a nove. Podemos simplesmente adicionar aqui privado, final e a cadeira. Então o que estamos dizendo aqui é que esta variável é finita e não podemos alterá-la. Agora, os outros usos do modificador final envolveu herança e pode ter influência significativa e design de software, especialmente o modificador final, pode ser usado, reduzir a capacidade está relacionada à herança. Então, anteriormente mencionamos que o método pode ser declarado como final, o que significa que ele não pode ser substituído em nenhuma classe que estende o que ele é. O método final é frequentemente usado para insistir que a funcionalidade particular seja usada em todas as classes experimentadas. Agora, o modificador final também pode ser aplicado a uma classe inteira. A classe final não pode ser estendida. Então podemos simplesmente dizer que o item de classe pública. E agora vamos ter destinatário dizendo que o tipo de pizza não pode subclasse a classe final colocar item uma vez que é finito e você não pode estender. Assim, dando esta declaração, esta classe não pode ser usada na cláusula estendida de uma classe de ativo. O compilador irá gerar uma mensagem de erro em tal caso. Usar o modificador final para restringir habilidades de
herança é uma decisão chave de design e deve ser feita em situações em que uma classe filho poderia possivelmente ser usada para alterar a funcionalidade que você, como designer, o civicalmente queria ser tratado de uma certa maneira. Esta questão surge novamente e a discussão do polimorfismo, e discutiremos isso mais tarde. Vejo vocês no próximo vídeo.
8. Polimorfismos: Agora discutimos polimorfismo e outro princípio fundamental do software orientado a objetos. Muitas vezes, o tipo de uma variável de referência corresponde à classe do objeto para o qual prefere Exatamente. Então, quando estamos dizendo, por exemplo, um é igual a nova string. E digamos, agora, o que fizemos aqui é o tipo de variável de referência é o mesmo que o objeto de classe, que agora é o termo polimorfismo então ser definido como tendo muitas formas. Uma referência polimórfica é uma variável de referência que pode se referir a diferentes tipos de objetos em diferentes pontos no tempo. O método específico invocado através de uma referência polimórfica pode mudar de uma invocação para a próxima. Então suponha que temos um método chamado dueto. E se há um objeto de referência aqui é polimórfico, ele pode se referir a diferentes tipos de objetos em momentos diferentes. Então, se essa linha poderia discórdia, corre e, em seguida, loop, ou é um método que é chamado mais de uma vez. Essa linha de código poderia chamar uma versão diferente do método dueto. Cada vez que é invocado, podemos criar uma referência polimórfica em Java de duas maneiras, usando herança e usando interfaces. Vamos olhar para cada um, por sua vez, vai começar com polimorfismo Vodafone via herança. Então, quando declaramos uma variável de referência usando um nome de classe particular pode ser usado para se referir a qualquer objeto dessa classe. Além disso, também pode se referir a qualquer objeto de qualquer classe que está relacionado. E é declarado tipo por herança. Então, por exemplo, vamos tentar isso aqui temos nosso método principal é criar algumas classes aqui. Por exemplo, criar uma classe chamada mamífero, outra criatura de classe. E os anfitriões da última classe. Então, temos três aulas. A classe pai, adivinhe a criatura, e ele tem um sistema de classe filho Emile, ele deve estender. E este é o correio principal, deve estender a criatura. E, por último, temos o nosso curso, que é uma classe de domínio infantil, e deve estendê-lo também. Então agora temos três copos aprendidos. Juntamente com a herança. Agora, a referência principal pode ser usada para se referir a qualquer objeto da classe detém. Então, por exemplo, se dissermos, vamos chamá-lo de H. Então este é o nosso cavalo objeto. E por exemplo, nós, por exemplo, podemos dizer igual a borda e trabalhar corretamente. Então esse relacionamento funciona em toda a hierarquia de classes. Então, se a classe mamífero foram derivados de uma criatura cascode aqui, podemos também dizer que Ranger, Por
exemplo, vamos limitar c igual a nu. E isso funcionará corretamente. E você também pode entrar em códigos. Já que Hórus é o filho do talvez. Agora a variável de referência SC pode ser polimórfica porque em qualquer momento ela pode se referir a um objeto Animal, criatura para habilitar para o hospedeiro. Então suponha que todas essas três classes têm um método chamado movimento que é implementado de maneiras diferentes e quando esta linha é executada. Portanto, se a criatura atualmente se refere a um objeto de criatura, se c se referir a um objeto de criatura, o método de movimentação da classe de criatura será invocado. Da mesma forma, se c garantido refere-se a um objeto
mamífero, a versão continental do MOOC é invocada. E finalmente, se C é atualmente país referindo-se a um objeto cavalo, o cavalo, que o método na classe cavalo será invocado. Então esta é uma idéia geral sobre polimorfismo. E no próximo vídeo, faremos um exemplo para entendê-lo melhor.
9. Exemplo de Polymorphism parte 1: Agora vamos dar uma olhada em outra situação. Portanto, considere esta hierarquia de classe. As classes nesta hierarquia representam vários tipos de funcionários que podem ser empregados em uma determinada empresa. Então vamos explorar um exemplo que usa essa hierarquia para pagar um conjunto de funcionários de vários tipos. Então, em primeiro lugar, temos a classe empresa contém no Maine, desviado cria uma equipe de funcionários e invoca o método payday para pagá-los chamada. O programa. Saída inclui informações sobre cada funcionário e quanto cada um é ruim. Se alguma coisa. Esta firma, temos o pessoal. Ele mantém uma matriz de objetos que representam funcionários individuais de vários tipos. Assim, a área é declarada para ter que manter referências de membros da equipe, mas é realmente preenchido com objetos criados a partir de várias outras classes, como o voluntário empregado, executivo. E essas classes são todas descendentes da classe membro da equipe. E assim a tarefa é válida. A matriz estabelecida é preenchida com referências polimórficas. Então aqui neste membro da equipe, podemos acessar funcionários voluntários executivos, sem dúvida. Maneira polimórfica. Agora, cada classe tem suas características específicas. Então todos os trabalhadores precisam ter nome, endereço e telefone. Mas se uma pessoa é adversário td, ela não precisa ter um número de segurança social ou uma taxa de pagamento. E é aqui que o voluntário é diferente do empregado. E a mesma coisa para executivos e por hora. Então executivo tem, tem um bônus e de hora em hora funcionou. Então vamos em frente e criar nossas aulas. Para começar. Vamos criar o nosso pacote. Então vamos terminar com um exemplo, exemplo de polimorfismo, e vamos criar nossa classe. Temos aqui o nosso método principal. Vamos criar outra classe. Criar o membro da equipe iria nomeá-lo material. Então temos a nossa segunda classe. Então. Também temos, vamos ver o quê. Temos nossa equipe, temos membros da equipe. Criar classe de membro da equipe. Então temos o empregado voluntário Scott, este é o potentado na sala de aula. E então nós também temos executores, e estas são as duas últimas classes, executivo. E por último. Então, agora que criamos todas as nossas classes, vamos atribuí-las juntas. Então temos o membro da equipe, voluntário, e empregado que estendem o membro da equipe. Então voluntariado aqui estende membros da equipe. E a mesma coisa com membro da equipe de funcionários. E como podemos ver nesta hierarquia de classe, temos classes executivas e filhos de funcionários. Vai passar aqui e estendê-las. E a mesma coisa com estende. E vamos começar com o membro da equipe. Como podemos ver aqui, temos um membro da equipe, três variáveis, nome, endereço e telefone, e toString método. E vamos em frente e criá-los. E nós mesmos. Dê a eles um nome de referência protegido, endereço. E teremos nossas três variáveis. E agora podemos criar nosso construtor para configurar o membro da equipe usando a inflamação especificada. Então temos essas três informações para criar. Nossa construiu essas informações como de costume. E as três cordas na barra de endereços. E simplesmente atribuí-los para olhar para variáveis. E para n igual a p. Então este é o nosso construtor. Agora vamos criar nossos dois métodos. Temos ToString, ToString, e ele irá imprimir o nome, endereço e telefone. Vá em frente e crie isso. Liguei para três, que temos nome mais, mais. Vamos criar uma nova linha simplesmente você linha, simplesmente digitando n. Então este é o nosso Nome. E na segunda linha, nós abordaríamos. Endereço. E o endereço. A última linha, número de telefone. Então este é o número de telefone. E agora precisamos adicionar uma nova linha. Então este é o nosso método toString, e finalmente retornamos o resultado. Agora, o último método que temos nesta classe são os métodos da baía de Dublin. Os métodos duplicaram. Cada funcionário tem um método de pagamento diferente, vai deixar as classes derivadas para definir um método para cada tipo de funcionário. Portanto, este método não terá nenhum corpo. Então é por isso que será abstrato. E devemos também atribuir a classe para ser abstrata também. Já que temos um método abstrato. Então esta é a nossa classe de membros da equipe, e nós continuamos com as outras classes para o próximo Purdue.
10. Exemplo de Polymorphism parte 2: Agora, já que terminamos com a nossa classe de membros da equipe, vamos mudar para o nosso voluntário. Então temos um somador aqui dizendo que o voluntário deve implementar o método abstrato herdado. Membro da equipe. Agora será herdado. Mas antes, vamos para a nossa hierarquia de classes e ver que temos um voluntário não tinha apenas um método B duplo. Então vamos voltar e criar nosso construtor. Temos voluntário construtor, sarja toma como de costume, três pontos fortes. Spank e um endereço tem que ser executado. E nosso super construtor e dar esses três valores. Então agora criou o nosso construtor. Vamos criar o nosso método, que é B. E como voluntário não pagará nada. Acabamos de voltar 0. Então esta é a nossa aula de voluntários. Agora vamos passar para a nossa classe de funcionários representa um funcionário pago em geral. Nesta aula. Temos o nosso construtor como de costume, mas vamos voltar à nossa hierarquia de classes. Podemos ver que temos duas novas variáveis, número de segurança
social e a ajuda solicitada. Temos dois métodos para string e pagar. Então, primeiro de tudo, vamos criar nossas duas variáveis. String protegida. Temos o número da segurança social, e outro protegido com um duplo tipo oito. Agora, novamente, criar público não construído. E o parâmetro agora temos cinco variáveis em vez de três. Temos o nome, endereço e telefone. E adicionaremos o número do seguro social e o período. Vamos em frente e para esses cinco investimentos e para o nome, para o endereço, o telefone, e pedir o número da Segurança Social. E, por último, um padrão duplo jogado. E o que vamos fazer é atribuir as três variáveis como de costume para o super, usando a super referência para a classe construtor. E agora terminamos com o nome, endereço e telefone. Eles são automaticamente. Eles foram para o membro da equipe e eles são designados aqui. E agora trabalharia com o nosso número de segurança social. Número do seguro social, vamos dar-lhe um valor de S. e a taxa que temos isca com um valor de taxa. Agora, vamos trabalhar com nossos métodos. Temos dois métodos que toString que precisamos modificar e a taxa que debate. Primeiro de tudo, vamos modificar as duas vertentes. Quem é o método do tanque? E se usarmos tensão
super D2 terá o método toString, o que armazenamos aqui. Então temos nome, endereço e número de telefone. Então vamos em frente e usar uma camada. Nós temos. Vamos criar uma gíria chamada resultado e usar o super para chamar o método toString e o supertipo membro da equipe. Para. Agora temos toda a informação e o membro da equipe como endereço numerado e estrangeiro aqui. E adicionaremos ao nosso número de seguridade social simplesmente dizendo número seguridade social com um valor de número de seguridade social. E, em seguida, retorne o resultado. Para. Agora, terminamos com este método. Vamos em frente e trabalhar com o nosso método de baía, que é público e retornaria um valor de theta. Agora, este é o nosso empregado. Vamos trabalhar com o nosso executivo. E agora vamos voltar para a nossa hierarquia de classes e vemos que executivo tem bônus, a variável w, bônus e dois métodos, nosso bônus e eles iriam para o executivo e um novo bônus duplo privado. Vamos criar o nosso
executivo público construído agora e dar-lhe alguns valores que temos como de costume, o nome eo endereço é encontrado,
em seguida, o número do seguro social, nome endereço. E, finalmente, há oito. E como de costume, vamos chamar o zelador, dar-lhe um nome. Endereço por telefone como social e aumento. O bônus aqui será igual a 0. Então nós definimos bônus igual a 0. Este é o nosso construtor. Vamos criar nossos dois métodos. Temos um bónus, público, bónus poeta. Se você pegar um parâmetro de um tablet, vamos nomeá-lo coronas, e vamos atribuir bônus a esta caixa. E o último método é pagar irá calcular e retornar para um executivo, que é o pagamento regular dos funcionários mais o bônus de uma vez. Então temos o nosso método. E este método, vamos criar um pagamento, o que é super bom. Então vamos calcular a data de pagamento como de costume do empregado e mais
o bônus e, em seguida, retornar. Então esta é a nossa classe executiva. Vamos agora para a nossa aula. E nossa classe teríamos uma nova variável, horas trabalhadas e três métodos no nosso e para string. Então aqui, em primeiro lugar, criamos nossa variável privada, horas trabalhadas. E vamos criar nosso construtor como de costume. E nós temos um, B, Jang. E finalmente, e vamos atribuir essas quatro variáveis, cinco variáveis para o super E a, B, S, e R. E dar às horas de trabalho o valor de 0. Aqui não temos um método chamado adicionar horas para adicionar nosso método Evite, horas
públicas e horas. E vai atribuir horas selvagens. Então, o que quer que tenhamos, inverter as horas, adicionamos essas horas a ele. E outro método é o debate para este empregado. Então, neste método retornaria. E temos um pagamento duplo. E o pagamento está pago. Nós temos que pagar taxa vezes quantas horas eles simplesmente trabalham. Então, temos o nosso horário de trabalho. E depois disso, toda vez que pagamos, funcionário será redefinido automaticamente para 0. Então voltamos ao pagamento. Então este é o nosso pagamento. E, por último, temos o nosso método toString é cadeia pública. E podemos pegar o resultado do tanque e depois modificá-lo adicionando as horas atuais. Quantas horas amortecedor funcionam atualmente. Então, adicionamos uma nova linha. E então vamos adicionar,
digamos, horas e horas atuais, horas trabalhadas. Em seguida, devolva os resultados. Terminamos com nossas aulas de pais e filhos, membro da equipe, voluntário, executivo, e avidamente, o próximo vídeo vamos falar sobre a equipe e para as aulas.
11. Exemplo de Polymorphism parte 3: Agora ainda temos duas aulas, classe
firme e classe pessoal. Vamos trabalhar com a turma do pessoal. Dentro desta classe irá criar uma lista de alguns membros da equipe. Então membro da equipe privada, como Adam e seu nome é, coisas, obtém criar um construtor para configurar um telescópio membros da equipe
simplesmente sem parâmetros e vai dar esse valor lista de coisas. É o material novo. Portanto, temos oito elementos nesta lista e e temos alguns elementos. Lista de coisas, posição 0, executivo, por exemplo. É, o nome da string. E o endereço será 1-2-3. Número de telefone principal, por exemplo, digamos menos 0.51111. E este número da Segurança Social, é, por exemplo, o 123456789. E por último, a taxa é, por exemplo, digamos 2423.07.07. O elemento na posição um, empregado e empregado. E, como de costume, por exemplo, como de costume, digamos, por exemplo, 0,01. Número da Segurança Social 12345451234. E, por último, iterar, digamos cento e duzentos e quarenta e seis. 0,15. E fazemos o mesmo com os outros só para não os copiar. E então este é o segundo 17567. E vamos mudar o Haiti, por exemplo. Digamos, vamos mantê-lo como um empregado no segundo. E depois o depois dele é quebrado como professor. E o outro tem o suficiente, então ajuste o e torná-lo tamanho seis. Agora, vamos modificar este nome, este empregado. E por 55 para o número de
telefone e 99. E, por último, iterar, por exemplo, 3.246. E o mesmo aqui. E temos o 999. Mesma coisa aquecida. Vamos mudar os números e a taxa como de costume. Por exemplo, vamos configurá-lo como 1010. E por último, temos de votar e é sabido. E era apenas o nome, endereço e número de telefone sem estes dois adicionais. Então vamos em frente e excluí-los. E este é o nosso primeiro, e este é o nosso segundo voluntário. Só mude aqui. P5. E sim, esta linha principal 123. E ele é. Então estes são, estes são os nossos membros e esta lista. Agora ainda temos dois métodos. Um e executivo, uma palavra venenosa e reunida e nossa. E vamos usá-los. E os membros da nossa equipe, o nosso membro da equipe. Agora, precisamos trabalhar com executivos. Então nós simplesmente escrevemos executivo. E dizer ao programa que precisamos de um membro da equipe executiva. Estamos especificando o que a lista de funcionários quando você começa a colocá-lo parênteses e bônus para cima, e isso é 500s, por exemplo. E a mesma coisa. E teremos o pessoal listado três. E agora temos a equipe, o método de pagamento para pagar ou os membros. Então, depois de criar o construtor irá criar um dia de pagamento anulado público. E temos uma quantia a pagar, por isso vamos guardá-la e dobrou a quantia. E em primeiro lugar, vamos imprimir todas as listas de funcionários. Cada membro da lista de funcionários por impressão. E então, se o valor for igual a 0, então é certamente um voluntário. Então vamos imprimir tanques. Caso contrário, iria imprimir o valor que vamos pagar. E a quantidade é igual a cada estabelecido. Com o método dá a quantidade é igual a 0. Então só obrigado. É um voluntário agradecendo a ele. Caso contrário, quando eu estiver fora. Mais a quantia. Agora temos o nosso método na equipe. Vamos em frente e usá-lo em nossa firma. Então ele recriou o objeto do bastão. S é o novo material e usar um método. E vamos rodar o código, ver o que vai acontecer. Então aqui temos em primeiro lugar, o nosso primeiro. Vamos voltar e imprimir a linha entre F3, menos todos os membros da lista e esta lista, apenas para, para ser mais claro. Então, depois de imprimir
cada quantidade, imprima uma nova linha. E agora dentro da foto e executar o código mais uma vez, obtemos a mesma saída, mas com uma linha para dividir cada membro desta lista. Então, primeiro de tudo, temos algum endereço, número de
telefone e a quantidade, e então temos a mesma coisa. E, por último, temos que voluntariar. E conhecido e Karla, uma vez que eles são voluntários, não
vai imprimir o valor porque eles não estão sendo pagos. Então só imprimimos. Obrigado. Por isso, penso que este exemplo demonstra o uso do polimorfismo que estabelecemos. E cada membro da equipe, cada vez que ele vai imprimir coisas diferentes desde cada vez para trabalhar de forma diferente. Então é isso para polimorfismo. Vejo você no próximo vídeo.
12. Recursão: Falamos agora sobre recursão. Recursão é uma técnica de programação poderosa que fornece uma solução elegante para certos problemas. Vimos muitas vezes em exemplos anteriores que um método pode chamar outro método para alcançar um objetivo. O que ainda não vimos, no entanto, é que um método pode se chamar. Recursão é uma técnica de programação na qual um método se chama a si mesmo, a fim de cumprir seu propósito. Mas antes de entrar nos detalhes de como usamos recursão em um programa, precisamos explorar o conceito geral de recursão. A capacidade de pensar recursivamente é essencial para poder usar a recursão como técnica de programação. Em geral, recursão é o processo de definir algo em termos de si mesmo. Por exemplo, vamos supor que queríamos
definir formalmente uma lista de um ou mais números separados por vírgulas. Tal lista pode ser definida recursivamente como um número ou como um número, seguido por uma vírgula, seguido por uma lista. Então podemos dizer que queremos um número seguido por uma vírgula. E então estes são dois exemplos. Temos um número, depois uma vírgula, e depois uma lista. Não importa quanto tempo a lista é, a definição recursiva descreve-a. Uma lista de um elemento, como este exemplo, é definida completamente pela primeira parte não recursiva
da definição para qualquer lista maior do que um elemento que ele vai se parte da definição for usada como muitos vezes, conforme necessário, até que o último elemento seja atingido. O que estamos dizendo aqui é que temos um número e depois seguido por uma vírgula, e então temos uma lista. E então a mesma coisa vale para 88 é um número, seguido por uma vírgula, então seguido por essa lista. E 40 é o número vírgula, e depois uma lista de um elemento. E finalmente, temos um número. Agora, a definição de lista contém uma opção que é uma cursiva e uma opção que não é. A parte da definição que não é recursiva é chamada de caso base. Se todas as opções tivessem o componente recursivo, essa recursão nunca terminaria. Por exemplo, se a definição de listas fosse simplesmente um numerado seguido por uma vírgula, seguido por uma lista. Nenhuma lista poderia acabar. Esse problema é chamado de recursão
infinita, diferente do loop infinito Glenn, exceto que o loop ocorre na própria definição. Então agora vamos em frente e falar sobre recursão em matemática. Por exemplo, vamos supor que o n fatorial. Então, digamos e fatorial. Assim, o valor referido como n fatorial é definido para qualquer inteiro positivo n como o produto de todos os inteiros entre um e n inclusive. Então, se dissermos n fatorial é igual a três vezes duas vezes. Um é seis. Agora, a mesma coisa se dissermos cinco fatoriais é cinco vezes quatro vezes três vezes dois, todo o caminho para um. Fórmulas matemáticas são frequentemente expressas recursivamente. E definição de N fatorial pode ser expressa extra como. E fatorial é igual a n vezes n menos um. Aqui temos fatorial quatro e maior. Assim, enquanto n é maior do que um, n fatorial é igual a n vezes n menos um fatorial. E a mesma coisa vale para isso. E assim por diante. Agora, o caso base desta definição é um fatorial. Um fatorial é igual a um. Todos os outros valores de n fatorial definidos recursivamente como N vezes o valor n menos um fatorial. Então, usando essa definição, quando dizemos 50 fatorial, é igual a 50 vezes 49 fatorial. E 49 fatorial é igual a 49 vezes 48 fatorial e assim por diante. E este processo continua até chegarmos ao caso base de um. Como n fatorial é definido nos inteiros positivos, essa definição é completa e sempre concluirá com o caso base. Agora, vamos trabalhar com bactérias e programação. Primeiro de tudo, devemos criar um método matéria para retornar um inteiro. Vamos nomeá-lo fatorial e a sarja tomar um inteiro como pagamento. E agora, como dissemos, o caso base é quando n é igual a um. Então vamos dizer que se m é igual a um, vamos apenas devolver um. Caso contrário, se n não for igual a um, acabamos de retornar e multiplicado pelo fatorial de n menos um. Agora, para executar esta operação, basta
chamar o método mais uma vez com o parâmetro de n minus1. Agora vamos em frente e usá-lo. Por exemplo, digamos que n é igual a quatro. E este método e, e executar o código, temos 24. Então o que aconteceu aqui é nós, nós realizamos fatorial com um parâmetro de quatro. Então ele vai para este método. Temos para isso não é igual a um. Então temos quatro vezes o fatorial n menos um, que é três. Então quatro vezes fatorial três. Então temos quatro. Golpe aqui, quatro vezes alguma coisa. Agora fatorial de três, ele vai para o método mais uma vez. Temos três vezes fatorial dois. Então temos três vezes alguma coisa. E a mesma coisa, mais uma vez, duas vezes fatorial 12 vezes um fatorial. Então, a última vez que
entramos no método, temos n é igual a um, então basta retornar um. E é isso, é quatro vezes três vezes dois vezes um. Então vamos imprimir isso quatro vezes 312 vezes 224, e vamos ter 24. Agora, podemos enfrentar alguma coisa. Por exemplo, se inserirmos um valor negativo, digamos menos sete, obteremos um erro. Porque não lidamos com isso. Nós apenas temos o número positivo e multiplicá-lo pelo número abaixo dele. E nós temos o caso base, que é quando n é igual a um pode corrigi-lo
dizendo enquanto n é menor ou igual a um, retornar um, então nós obtemos um. E se não quisermos obter um, por exemplo, se quisermos obter menos 1, podemos dizer que se n for menor que igual a um, retorne menos1. E, e depois movemos isto daqui e
executamos o código, obteremos menos um. Então este é um pequeno exemplo e recursão. E nos próximos vídeos, vamos explorá-lo mais.
13. Exemplo: deriva de recursão: Vamos agora usar outra operação matemática simples para demonstrar o conceito de programação recursiva. Considere o processo de somar os valores entre um e n inclusive, onde n é qualquer inteiro positivo. A soma dos valores de um a n pode ser expressa como e mais a soma dos valores de um a n menos um. Então podemos dizer que a soma de n é igual a n mais e menos um. Por isso, vamos manter isto aqui como comentário. E vamos começar com o nosso método. Vamos dar um nome a ele. Alguns estáticos públicos retorna um inteiro com o valor e, e nosso caso base sendo surdo e é igual a um. Retornar um caso contrário seria transformado o número e mais soma de n minus1. Então, como
dissemos aqui, devemos retornar alguns de n é igual a n. Isto é n mais a soma de n menos um. E este é o nosso método e vamos usá-lo aqui. Imprima algumas das médias. Neste caso, quatro. Temos quatro mais três mais dois mais um igual a dez. Agora, o caso base no exemplo de somação é quando n é igual a um, ponto
em que nenhuma outra chamada recursiva é feita. A recursão começa a cair de volta para as versões anteriores do método de soma, retornando o valor apropriado cada vez. Cada valor de retorno contribui para o cálculo do Sol no nível mais alto. Sem um caso base, recursão
infinita resultaria. A função soma valores iniciais diferentes de non end e até que o processamento se torne familiar. Assim, nesta figura ilustra as chamadas recursivas quando o método principal chama alguns para determinar a soma dos inteiros de um a quatro. Cada caixa representa uma cópia do método tal como está em. As chamadas são mostradas como linhas sólidas aqui e retornam como linhas pontilhadas. O resultado do valor de retorno em é mostrado em cada etapa. O caminho recursivo é seguido completamente até que o caso base é quando soma é igual ao número aqui, valores iguais a um. E depois disso, a base está agora alcançada. Então, a causa começou a retornar o resultado através da cadeia. Então, quando n é igual a um, começamos a retornar seus resultados. Em primeiro lugar, devolvemos um. Então temos dois mais 133 mais três é igual a seis, vai retornar 66 mais 410 retornaria dez. Agora, é claro, há uma solução não-recursiva para o problema de somatório que acabaria de ser explorado. Uma maneira de calcular a soma dos números entre um e
um número e inclusivo de forma iterativa é, por exemplo, usaremos o
loop for para um a n inclusive, então igual a n e soma mais igual a. E em primeiro lugar, temos um inteiro, soma igual a 0. E então nós imprimimos alguns plus sum, e aqui nós precisamos adicionar. Então soma é igual a 0 mais um mais dois mais três, mais cinco mais quatro. E quando i é igual a quatro, a saída, o loop for e a soma de impressão. E aqui eu adicionei uma linha de impressão aqui. Agora, se rodarmos o código, conseguiremos alguns são dez. Agora, é claro que aqui podemos dizer que eu é igual a um. E temos a mesma coisa. Ou pode definir r é igual a um e começar com i igual a dois. E, claro, obtemos o mesmo resultado. Claro, a solução é certamente mais direta do que a versão recursiva. Usamos o problema de somação para demonstrar recursão porque é simples, não porque você usaria recursão para resolvê-lo em condições normais. Recursão tem a sobrecarga de várias invocações de método e, neste caso, apresenta uma solução mais complicada. Então é contraparte iterativa. O programador deve aprender quando usar recursão e quando não usá-lo. Determinar qual abordagem é melhor depende do problema que está sendo resolvido. Todos os problemas podem ser resolvidos de forma iterativa. Mas, em alguns casos, a versão iterativa é muito mais complicada para alguns problemas e nos permite criar programas relativamente curtos e elegantes. Finalmente, falaremos sobre recursão direta e indireta. Corrosão dialética ocorre quando um método invoca a si mesmo, como quando alguns objetivos, alguns recursão indireta ocorre quando um método invoca outro método, eventualmente resultando no método original sendo invocado novamente. Por exemplo, o método m1 invoca um método M2 e M2 invoca o método m1. Podemos dizer que m1 é indiretamente recursivo. A quantidade de indireção pode ser de vários níveis profundos. Como quando m1 em livros, m2, que invoca M3, que invoca M4. E, finalmente, este método e para invoca m1. E a recursão direta requer toda
a mesma atenção para ter casos que a recursão direta requer. Além disso, na recursão direta pode ser mais
difícil de provar porque como o método interventivo chama, portanto, extrair é um final ao projetar ou avaliar em métodos diretamente recursivos. E mostrou que a indireção é realmente necessária e claramente explicada como você quer.
14. Recursão: Recursion:: Depois de usar a recursão para alguns programas simples, agora use-a com outros mais complexos. Vamos em frente e criar um novo pacote. Nomeie programas. E criamos duas classes. Dois fabulosos. Isso significa que temos o primeiro chamado busca labirinto. Aqui temos o nosso método principal. E o segundo, vamos chamá-lo de labirinto. Agora ele está alternando surpreender envolve uma grande quantidade de tentativa e erro, seguindo um caminho, retrocedendo quando você não pode ir mais longe e tentar outras opções não experimentadas. Tais atividades muitas vezes são tratadas bem usando recursão. Temos as nossas duas aulas. Esta é a nossa classe de motorista, pode procurar. Temos um método principal aqui e nosso labirinto onde vamos criar nosso método recursivo. Então aqui, em primeiro lugar, vamos escrever MAs e vamos usar o bidimensional adicionado. Nunca o usou antes, como um array, mas um bidimensional. Então vamos usar uma matriz bidimensional de inteiros para representar este labirinto. E o objetivo é mover do canto superior esquerdo para
o canto inferior direito e anotar e então nós retornaremos para você. Então este é o nosso labirinto. Inicialmente, um indica um caminho claro e um 0 indica um caminho preto. À medida que o labirinto é resolvido, esses elementos de matriz são alterados para outros valores para indicar caminhos
tentados e, finalmente, caminho bem-sucedido em todo o labirinto. Então teríamos dois valores. Um dar-lhes-á uma final de referência, e o outro é, vamos limitar. Então, se tentarmos um caminho, então o valor será 31 sobre o caminho de nomeação Menos passado. E vamos dar-lhe um valor de sete. Agora, o primeiro método que vamos criar é o método toString para imprimir esta grade, este labirinto. E vamos em frente e vamos usar o público. Aqui temos tensão. Esforce-se e ele voltaria. Um labirinto domínios irá criar como uma string. Então, em primeiro lugar, temos nossa força e resistência. E este resultado. Primeiro de tudo, vamos imprimir uma linha e imprimir uma linha aqui. E nós apenas imprimimos isso. Então vamos criar dois para loops aninhados para loops. Uma para as linhas e a segunda para as colunas. Então aqui temos o grande comprimento de ponto. E a outra visão é esse comprimento. Então, se dissermos grande eu esse comprimento. Então vamos pegar cada linha e, e vamos ver o comprimento do traço. Então ele terá 131313. Assim, o comprimento do exterior para loop como oito e o interior para loop é 13. E agora vamos em frente e armazená-los no resultado. Armazenamos a grade em i e j e adicionamos citações duplas aqui. E nós fizemos, depois disso, vamos apenas imprimir alinhados. Então com isso aqui e você linha. E vai somar estes. E então devemos fingir os resultados. Então vamos tentar. Um objeto significa vamos usar o método toString e imprimiu o código. Olha para o nosso labirinto. Então esta é a nossa rede elétrica. Agora, como dissemos, um indica um caminho e 0 indica um bloco. Mas agora, para saber se esta posição é válida ou não, vou criar um método, vamos chamá-lo de piloto. Antes de criar o nosso método because if. Então vamos em frente e criar um novo método. Vamos dar um nome a ele. E ele retornará verdadeiro se esta posição for válida e falsa. Se não. Então, pegue dois elementos. E finalmente, temos resultado booleano. Em primeiro lugar, é falso. E agora verificamos se a célula está nos limites da matriz. Então verifique se rho é maior ou igual a 0. E se rho é menor ou igual a esse comprimento. E, claro, a mesma coisa para a coluna. Se a corrente for maior ou igual a 0 e a coluna for menor ou igual ao comprimento do ponto rho. Então este é o caso. Então verificamos agora se a célula não está bloqueada e não previamente amarrada. Então, se essa linha grade
igual linha e coluna é igual a um, então este é um movimento piloto, nunca
tentaria antes e não está bloqueado. Então, se não for igual a 0 ou não for igual a três, então vamos em frente e obteremos o resultado. Alteramos os resultados de falso para verdadeiro. E depois disso, retornamos o resultado, seja qual for o resultado, verdadeiro ou falso, o retornaria. Agora. Então este é agora um método para verificar se este é um movimento válido. Então, o que estamos dizendo aqui é, por exemplo, vamos verificar esta posição. Então isso está na posição 012 e aproximação 0. Então, primeiro de tudo, isto, se você quiser acessar esta posição, podemos escrever cred, linha e coluna. Está na coluna 3012. Sinto muito em ouvir. Então, na posição 02, temos este 012, temos esta posição, que 22 aqui, 03, 0s e assim por diante. Então este método válido, em primeiro lugar, vamos tomar os dois parâmetros, linha e coluna. E em primeiro lugar, ele verificará se a célula, é os limites da matriz. Então, se rho é maior que 0 e menor que o comprimento, então se ele está entre 08 e mesmo aqui, ele irá verificar se a corrente está entre 0 e o comprimento 13. Depois disso, se este for o caso, então vamos em frente e verificar o número e discreto. Então vamos acessar, ler Joe Cannon neste caso 12. E veremos aqui que temos 12012012 aqui. Então este é o 12. Se for igual a um, então mudaremos o resultado para verdadeiro. Neste caso, nós temos um, então vamos mudá-lo para true e ele irá retornar resultado como true. Agora temos todas as ferramentas e tendemos a começar com o nosso método recursivo. Então vamos começar com ele no próximo vídeo.
15. Recursão: o Maze 2: Ainda temos o nosso último método, que é o nosso método recursivo. E os únicos movimentos válidos através do labirinto estão na prioridade total direcções directas para baixo, secaram e para a esquerda. Não são permitidos movimentos diagonais. Então, neste exemplo, o labirinto é oito linhas por três colunas. Embora o código é projetado para lidar com espantado de enfatizar. Mas, por enquanto, vamos trabalhar com o 813. Então vamos pensar nisso recursivamente. O ms pode ser atravessado com sucesso se pudermos
atravessá-lo posição 00 para a posição 712. Então, neste caso, na posição 00, precisamos trabalhar com ele, então vamos verificar se é uma posição válida. Se for válido, é igual a um. Então temos quatro direções. Temos 01100 menos um e menos 10, menos 10100 menos um e não válido. Então ainda temos dois movimentos válidos, que é 0110. E vamos com 01, por exemplo. E vamos verificar se é válido. É válido. E, e agora vamos nos encontrar na mesma posição que estávamos na primeira. Então também temos quatro direções, para
cima, para baixo, para a direita e para a esquerda. E precisamos checar entre eles. Então a mesma coisa ocorre toda vez que nos movemos neste labirinto. Agora, vamos criar o nosso método. Vamos chamá-lo de Avars. E esse método é booleano. Retornar verdadeiro, fingir viaja o labirinto e falso caso contrário. Booleano público. E para começar com 0-0 estudioso 22 parâmetros, introdução e encarnação e iria trabalhar com o corpo aqui. Primeiro de tudo, precisamos do nosso booleano. Vamos nomeá-lo feito. Em primeiro lugar, será igual a falso. E no final do método, devemos retornar um booleano. Então, vamos voltar pronto. Agora. Precisamos verificar se a posição em que estamos é válida. Então vamos usar o método válido. Criamos uma vantagem. Então, se for válido, vamos dar-lhe dois parâmetros, linha e coluna. E se for esse o caso, trabalharemos aqui. Depois de verificar se esta é uma posição válida. Agora vai mudar de um para três desde que tentamos. Então vamos mudar a linha
e coluna da grade de um para três desde que a encontramos aqui. Então, podemos dizer que isso foi tentado. Agora, só há um caso em que a rede elétrica será resolvida e nós retornamos verdade. Então é quando rho é igual ao comprimento da grade menos1. Então rho igual a esse comprimento menos um, e m é igual a linha
vermelha menos um. E então mudaremos de falso para verdadeiro. Caso contrário, precisamos verificar. Então aqui estamos dizendo que se estamos na posição 712 neste caso, vez que o comprimento do ponto menos um é oito menos 17. E comprimento quid pro dot quando S1 é 13 menos 1 12. Então, se estamos na posição 712, então os meios estão resolvidos. W1 igual a, e então vamos voltar feito e estamos feitos. Caso contrário, precisamos verificar com não nesta posição ainda. Precisamos verificar o baixo
usando w1 igual para atravessar para baixo. Vamos adicionar a linha um. Então, se estamos no pro 66 mais um, sabemos através de sete linha um com a mesma coluna. E a mesma coisa não está feita. Ou podemos dizer se w1 não é igual a, é igual a false. Se ainda não terminarmos. Mesma coisa. Tentamos escrever linha, coluna mais um igual a rho menos um. A mesma coisa. Tente ro menos1, linha e coluna menos um. Então é isso. E agora vamos explicar. Mas antes de dun, dun e deslocamento é parte do finito, mas então precisamos mudá-lo de três ou um ou o que quer que seja para sete, que é igual a. Então isso é o que nós fizemos aqui é nós criamos um método chamado a travessia, que é um método booleano. Ele retorna um valor booleano que indica se uma solução foi encontrada. Primeiro, o método determina se uma movimentação para a linha e coluna especificadas é válida. Portanto, um movimento é considerado válido, como dissemos antes, se permanecer dentro dos limites e se a década contém
um naquele local indicando que um movimento nessa direção não está bloqueado. Assim, a chamada inicial para atravessar passa no local superior esquerdo, 0-0 começará com 00. E se a movimentação for válida, essa entrada Vint é alterada de um para três. Se for válido, em seguida, irá alterar a entrada da grade de um para três. E então essas marcas que a delegação como visitada para que mais tarde nós não refazer nossos passos. E este método, em seguida, determina se o labirinto foi concluído por ter alcançado o local inferior direito. Então, se chegamos à ocasião inferior direita, então mudaríamos de falso para verdadeiro. E o nosso labirinto acabou então. Caso contrário, temos alguns passos a seguir. Então, neste método, experimentamos caminhos diferentes. Então, por exemplo, podemos começar por U1 e depois descer um. E ele foi bloqueado por três zeros. E na verdade há três, há três possibilidades do caso base para este problema que irá terminar qualquer particular por causa do primeiro se um movimento inválido, porque o filme está fora dos limites. Então, por exemplo, aqui, se chegarmos aqui, temos um e a posição esquerda está fora do limite. Então, ele encerrará o programa. E o outro é um movimento inválido porque a lua já foi julgada antes. Então, por exemplo, se formos aqui 21 e depois voltarmos, então eu não sei, talvez tentemos à esquerda e depois voltamos para os dois para baixo. Nós tentamos antes, então não será válido. Por fim, um movimento que chega ao local final. Então, depois de passar pelo labirinto e chegar ao fundo bem aqui, um, então procuramos o labirinto e ele terminará nosso caminho. Agora, CurrentLocation está no canto inferior direito. Procuramos uma solução em cada uma das direções primárias, se necessário. Primeiro, olhamos para mim, olhamos para baixo chamando recursivamente o método transversal e passando e o novo local. Então a lógica do método terrorista começa tudo de novo. Usando a nova posição. Uma solução é encontrada ao
tentar primeiro mover para baixo a partir do local atual ou não foi encontrada. Então, por exemplo, se começarmos com 00 e tivermos aqui 01, pesquisar primeiro, primeiro, temos 010, desculpe-me. Então aqui estamos na posição 1-0 tentaria toda a lógica novamente. E vamos verificar primeiro de tudo para baixo, não
temos nada, temos 0. Então não é válido. Então vamos tentar, certo? 0, não podemos tentar direito? Já que não é válido, então vamos tentar. Agora é igual a três, então não é válido também. Então finalmente tentaria esquerda, que é igual, que está fora do limite. Portanto, isto não é válido. Então retornaremos falso e voltaremos para aqui. Depois disso, o que vamos fazer é tentar derivado. Temos aqui na posição certa. É 01. Então aqui estamos no local 01. Primeiro de tudo, vamos começar olhando para baixo. Está 0 convidado. Então vamos voltar aqui e olhar, certo, nós temos um, é válido. Então vamos para esta posição x. Então agora estamos nesta posição, vamos fazer a mesma lógica novamente. Começamos por baixo, temos um, encontramos o caminho. A mesma coisa com um. Vamos procurar. Temos 0 inválido, vá com a direita. A mesma coisa aqui. Até chegarmos a uma jogada bloqueada. Se eu adicionei um e continuar até chegarmos ao canto inferior direito, passo a passo até chegar ao canto inferior direito. Mas por enquanto, vamos para a busca e temos, este método é booleanos. Então criamos uma variável booleana, nome e milho. Dois iguais a M. Traverse começaria com 00. Então, se isso é igual a verdadeiro, se labirinto, podemos dizer igualmente bom, deixá-lo vazio. Dados ao mesmo tempo. E se este for um caso, apenas imprimir foi com sucesso. Caso contrário, vamos imprimir que não há caminho possível. E finalmente, vamos imprimir o labirinto. Corra mais tempo. Vá em frente e execute esse código, vai obter o labirinto foi atravessado com sucesso. E aqui temos o caminho 777 para baixo Seventh, para baixo até chegarmos aqui do que para cima sete, todo o caminho para baixo, e depois para cima até chegar ao último centavo e ao canto inferior direito. Então este é o problema do labirinto, problema. E no próximo vídeo vamos falar sobre a Torre de Hanói.
16. Recursão: torres de Hanói: E este exemplo servirá o quebra-cabeça das Torres de Hanói. O quebra-cabeça Torres de Hanói foi inventado na década de 18 oitenta pelo matemático francês, tornou-se um favorito entre os cientistas da computação, porque é uma ilusão é uma excelente demonstração de elegância recursiva. O camponês consiste em três sacos verticais e um conjunto de discos com furos no meio para que o deslize para as costas. Cada disco tem um diâmetro diferente. Inicialmente, todos os discos são empilhados em uma cavilha em ordem de tamanho, modo que o disco grande, o maior, está na parte inferior, como mostrado nesta figura. E o objetivo deste quebra-cabeça é mover todos os discos do peg original para o PEC de destino. Mas este é o banco original. O pacote de destino é este. Então podemos usar o Peg extra como um lugar temporário para colocar discos. Mas você deve obedecer às seguintes três regras. Primeiro, não podemos colocar um disco maior em cima de um disco menor. Por exemplo, não podemos pegar esta mesa, colocá-la aqui, e depois pegar a outra e colocá-la em cima. Segundo, podemos mover apenas um disco de cada vez. E, por último, a mesa velha deve estar em algum ponto, exceto para a mesa em trânsito entre os pacotes. Por isso, não podemos tirar hoje das torres. Essas regras implicam que você deve mover o disco menor para fora
do caminho, a fim de mover o disco maior de 1 para outro. Então, aqui temos um exemplo passo a passo solução para as torres de Hanoi quebra-cabeça usando três mesa. Então, a fim de finalmente mover todos os três discos do primeiro peg para o terceiro peg, primeiro
você tem que chegar ao ponto em que o menor para este fora do caminho e o segundo banco para que o maior disco possa se mover do primeiro peg para o terceiro peg. Aqui temos a configuração original. Então, em primeiro lugar, movemos o primeiro, este é o menor disco para o último Peck. E então, depois disso, movemos o segundo para o, para aqui, para o segundo peg. E então vamos pegar de volta essa fumaça que o menor disco e colocá-lo em cima do segundo disco. E agora podemos mover o último disco daqui para o destino. E então movemos o primeiro disco para o primeiro saco. Mova o segundo disco, fez o último saco
e, em seguida, mova o primeiro disco para a última página. Então temos sete jogadas. E este exemplo, ao usar três. Vamos usar essa ideia para formar uma estratégia geral. Então, para mover uma pilha de n discos do peg original para o peg de destino. Primeiro de tudo, temos aqui n discos. O que fizemos foi que movemos e menos 1 para o disco deste peg para o segundo peg. Então o que você deve fazer é mover o topo mais n menos um discos
do peg original para o peg extra aqui. Em seguida, mova o maior disco do peg original para o Peg de destino, como fizemos aqui. E, finalmente, mova o n menos um discos do peg extra para o pacote de destino e use a recursão cedo. Então, o passo para mover n menos um disco após o caminho é o mesmo problema novamente. Então, quando tivermos aqui e menos 1 mesas aqui, então precisamos movê-los de volta para cá. Podemos executar os mesmos passos que de costume. E depois de chegar a este ponto, podemos então executar o mesmo passo. Todas as outras contas. Então agora vamos para este programa e criar um novo pacote. A nossa reunião. Aqui temos o nosso método principal. E a segunda classe, chamamos-lhe Torre de irritado. E agora, em primeiro lugar, configuramos o quebra-cabeça com um número especificado de disco. Então criamos nossas torres de construtor. E então ele vai levar um inteiro, quantos discos? Então diga o nome. E nós temos, é claro, eu faria mesas totais variáveis locais. E o que vamos
fazer é igual a n. E agora precisamos resolver este programa, este botão. Então vamos usar dois métodos aqui. O primeiro método é mover o número especificado de discos de uma torre para outra, movendo uma subcultura de n menos um disco para o caminho. Então, como dissemos, o que você faz é torná-lo privado. Vamos chamá-lo de torre de movimento. E agora hoje o número de disco como parâmetro e o início e o final, e o extra. Agora, como dissemos, se só nos resta uma mesa, vamos movê-la daqui para o último Peck. E então este é o nosso caso base. Se o número deste é igual a um, então nós apenas movê-lo. Então vamos criar o método que irá mover os discos vai em vez de escrevê-lo toda vez aqui. Então temos um vazio privado. Vamos dar um nome, mover um disco. Hoje, dois inteiros está começando de onde vamos movê-lo para dois. E até que ele vai simplesmente imprimir que mover um disco do início ao fim. Agora, então, se o número de disco for igual a um, então mova um disco do início para agir. Caso contrário. O que vai fazer é o que dissemos aqui. Então precisamos mover n menos um discos do primeiro peg para
o peg extra e, em seguida, mover n menos um. Mova o último do primeiro dia de partida para o ponto final aqui, como podemos ver aqui. E, em seguida, mova estes de volta para a primeira cavilha. Então, como dissemos, precisamos nos mover. O primeiro passo é mover n minus1 do início ao extra. Então vamos executar esta torre de movimento. Temos n menos um aqui, então um número de menos um. E começamos com o começo. E nós os mudamos para extra. E o saco de trechos seria o final do Peck. Depois disso, precisamos mover um disco. Agora estamos aqui. Então o que devemos fazer é mover este disco do primeiro saco para o último bicado. Então, realizamos essa operação simplesmente chamando o método que você criou aqui. Mova uma morte do início ao fim. E por último, devemos mover esses discos para o animal de estimação final. Então vamos criar, mover nosso número de morte do extra, o extra aqui para o fim. Então aqui nós temos e, e começar. E agora esse método é dito. Agora, podemos criar um método público apenas para usar este método facilmente sem inserir o início e fim extra, renomeá-lo para vendido. E ele vai tomar discos totais como parâmetro, um inteiro. E dois simplesmente chamados moveu nosso método com um número deste, que é o total. Este saco é o pino número um, o fim é três, e o extra é dois. E agora vamos em frente e executar este código e nosso método principal. Então vamos criar um objeto Torre de Hanói e T, as novas torres de Hanói. E vamos usá-lo com 34 mesa. E aqui temos solo. E este código terá linhas seguintes. E a mesma coisa. Por exemplo, digamos dez. Isso terá tantas linhas para mover todos os discos do primeiro peg para o último. Agora, pense na versão iterativa. Como se pareceria? E se é tão simples como esta versão recursiva. Então este é o problema da torre de Hanói. E vejo você no próximo vídeo.
17. Sort de inserção: Considere que você tem uma lista de inteiros como esta lista. E você quer que eles sejam classificados do mais baixo para o mais alto. Ei, você pode usar salga. E há, na verdade, vários algoritmos de classificação e vamos falar sobre alguns deles. Então, dentro por inserção de classificação. A classificação de inserção é um algoritmo de classificação simples que funciona semelhante à forma como você viu cartas de jogo em suas mãos. O array é virtualmente dividido em uma parte classificada e não classificada. Os valores da parte não classificada são escolhidos e colocados na posição atual na parte classificada. Dois aqui podemos começar com este exemplo. Vamos supor que temos esta lista, e esta lista será dividida em duas partes, uma parte ordenada e não ordenada. Então, primeiro de tudo, vou resolvê-lo por dois, será o primeiro elemento apenas. Então esta é a nossa primeira lista e esta é a segunda parte. Agora, quatro já está ordenado uma vez que é apenas um elemento, há apenas um elemento nesta lista. E você não tem que fazer nada. Não há nenhum elemento à esquerda de que seja maior do que quatro, então precisamos adicionar três. Então temos 43. Comparamos três com quatro. Então, quatro é maior que três. Então devemos trocá-los e teremos 34. Agora, a parte classificada da lista é 34 e a parte não ordenada é o que há aqui. E passaremos para o próximo elemento. Temos que comparar dois a 44 é maior que dois, então trocamos eles. E a mesma coisa que comparamos dois com 33 é maior do que dois também. Então troque-os mais uma vez, e teremos 234. E agora esta é a parte classificada, e esta é a parte não classificada, e assim por diante até chegar ao último elemento da lista. E então terminaremos. Então a idéia geral é comparar cada elemento com todos os elementos à esquerda. Trocar. Cada vez que encontramos um elemento à esquerda maior do que o elemento que estamos usando. Então vamos em frente e escrever o código. Você vai e cria uma classe. E primeiro de tudo, vamos criar nossa matriz inteira, nossa lista de inteiros. E, por exemplo, temos cinco elementos nesta matriz. Deixe-me armazená-los diretamente no 5110. Então esta é a nossa matriz e vamos criar o nosso método. Mas vamos dar o nome de inserção. E para tomar parâmetro um array, vamos nomeá-lo no trabalho aqui. Então, primeiro de tudo, temos o loop for para
passar por todos os elementos de 0 para o comprimento listado menos um. Os zeros já estão classificados, então não temos que começar com 0. Então começamos com um. Então o nosso resultado para loop com um e termina um comprimento de ponto menos um. Agora vamos criar um inteiro. Vamos nomear chave ID, e será o nosso elemento nesta lista. Então vamos comparar um de i. Então aqui está três a 1012 e assim por diante. E nós vendemos e um inteiro chamado jogo. E teremos outro inteiro será j, i menos um para começar por menos 1 e voltar até atingir 0. E o que estamos fazendo aqui é que estamos começando esse número, por exemplo, que o estado faz caso. A terceira linha, terceira chave em um inteiro. E nós pensamos que este número para um inteiro chamado chave. E então armazenamos a posição que estamos recuperando para começar, que é a posição i menos um, j i menos um. Então vamos para o lado desta posição e voltar até chegar a 0. Então vamos criar um loop while. Enquanto j é maior que 0 e a chave é menor que um de J, precisamos trocar. Então, para dizer aqui é que y j é menor, é maior que 0. Então, aqui neste caso j é igual a um. Tão bom. E a segunda condição, enquanto a chave, que é dois, é menor que um de J, neste caso quatro. Então precisamos trocá-los. Nós trocamos. E mais uma vez, verificamos as condições. Temos j maior que ou igual a 0. Neste caso, j é igual a 0. Então essa condição é válida. E dois neste caso, temos aqui também e aqui quatro, então 23, então três é maior que dois, então isso também é válido. Precisamos trocar mais uma vez. E então terminamos com isso para loop desde j será maior do que 0. E neste caso, então toda vez que executamos isso para loop, j será decrementado por um. E aqui precisamos trocar isso, criar um inteiro chamado tamp. E como de costume, essa troca vai levar um de j e armazenamento aqui, e dez e um de j. um de j. mais um neste caso. E finalmente, vamos pegar um j mais um e dar-lhe o valor de w. então aqui nós trocá-los. E agora dissemos, vamos voltar e imprimir. Primeiro de tudo, vamos imprimir a matriz como está antes de classificar. Então imprima em um e algum espaço. Em seguida, execute este método com um a. e então isso é impresso mais uma vez. Para vamos imprimir a luz a partir do código e tempo e vai começar em primeiro lugar, o sem sal adicionado e, em seguida, obter o ordenado, já que usamos o método de inserção que criamos aqui. Agora podemos ver como isso mudou todas as vezes. Então vamos imprimir a matriz para criar outro loop for após cada alteração. Depois de executar o loop. E imprimir um J2, neste caso, algum espaço. E então, e aqui precisamos imprimir uma ilha. Antes de executar este loop e executar o código irá obter isso. Então, em primeiro lugar, temos 32510. Começamos com i igual a um. Então eu igual a OnRestart, t igual a um de i, j é igual a um de 12, e j é igual a 0 neste caso, que é i menos1 0. Então temos um loop while que será executado apenas uma vez desde J é igual a 0 e, em seguida, ler recomendado. Portanto, a condição aqui
, não será válida para outra execução. Portanto, precisamos trocá-los, uma vez que as duas condições estão satisfeitas. A mesma coisa com cinco. Comparamos cinco a agora. Cinco com 25 é maior que dois, então esta condição não está satisfeita. Não vai entrar no loop for com simplesmente embora e incrementar I por um. Agora temos o número um. A mesma coisa aqui. Vamos comparar este com cada elemento e trocar os dois números. Assim, por exemplo, 15 irão trocá-los. E então 13, nós os trocamos mais uma vez. E por último, 12, troque-os. E, por último, teremos Dan. Dan é maior que todos os outros elementos. Então ele não entrará no loop, o loop while, e vamos ser feitos com os dois loops, o loop interno e externo. E podemos imprimir,
imprimir dizendo que você olha para fora e uma nova matriz para fora. Então isso é para a classificação de inserção. Vamos explorar mais algoritmos de classificação nos próximos vídeos.
18. Classificação de seleção: Vamos passar agora para outro algoritmo de classificação é a seleção. O algoritmo de classificação de seleção classifica uma matriz encontrando
repetidamente o elemento mínimo da parte não classificada e colocando-o no início. Agora estamos considerando ordem ascendente. Nós também temos a ordem decrescente em que podemos encontrar o elemento máximo e armazená-lo no início. E como o tipo de inserção, temos duas partes. O que já estava ordenado e a parte não ordenada. E cada iteração de classificação de seleção, o elemento mínimo
da sub-matriz não ordenada é pego e movido para a submatriz classificada. Então vamos usar um exemplo. Vamos usar a mesma lista aqui. E vamos apagar isto. Temos este método, exclua estes. E manteremos este método funcionar aqui. Mas antes, vamos executar este código e usar esta lista. Agora. Mas nós vamos fazer neste algoritmo de classificação é encontrar o mínimo cada vez e armazená-lo no não-ordenado a parte ordenada. Então, primeiro de tudo, vamos encontrar o mínimo e esta lista aqui nós temos um como o mínimo, vamos pegar este 11 e trocá-lo com este número. Seja qual for esse número, vamos trocá-lo por um. Então aqui temos um agora. E então deixe-me escrevê-lo aqui. Então temos 1253 e que o próximo passo é encontrar o mínimo e esta lista. Portanto, o mínimo é verdadeiro, e precisamos iniciá-lo nesta posição. Então estamos bem, já que o mínimo é dois. Então o próximo passo seria o mesmo que o primeiro. Sense, não precisamos mudar nada. Agora, vamos olhar para esta lista. Temos 5310 e encontramos o mínimo aqui. O mínimo é três. Precisamos armazená-lo no primeiro elemento. Então precisamos trocar três por cinco para o próximo. Ou seja, para trocá-los. Então, vamos ter 123510 e esquema de vidro comparado esses dois números como de costume, Encontre o mínimo entre eles e armazená-lo no primeiro elemento desta lista. E como dez é maior que cinco, então não precisamos fazer nada. E esta é a nossa lista final. Então agora vamos em frente e escrevê-lo como um código. Público estático, void, parâmetro de
seleção de uma matriz, inteiro. E neste caso, por exemplo, em primeiro lugar, precisamos armazenar o comprimento, o comprimento, o comprimento para usá-lo no loop for. Então aqui temos o comprimento desta lista. Ao lado do nosso loop for, podemos dizer array.length ou ambos, o mesmo. E agora precisamos encontrar o elemento mínimo na parte não triada. Então a parte não ordenada deve começar com i mais um. Então, cada vez que terminarmos com eu vou comparar e encontrar o mínimo na parte de i mais um no comprimento. E aqui temos n menos um. Como não temos que terminar no último elemento, podemos simplesmente adicionar e aqui. E o loop interno para compararia os dois últimos elementos. Então, neste caso, vamos armazenar o mínimo como i igual a i. E agora devemos encontrar o mínimo e a parte não ordenada. Então começamos com i mais um e a matriz angular, array.length ou a mesma simplicidade Maxwell. E agora vamos comparar todos os elementos para encontrar o mínimo. Então, primeiro de tudo, consideramos que o mínimo está no índice i.O índice e um inteiro chamado mínimo. Em primeiro lugar, eu é igual a 0. Então consideramos que o número mínimo nesta lista está no índice 0 para ir e olhar para o índice 0. Então vamos encontrar três e não é o mínimo. Então precisamos comparar esse número com todos os outros. E isso é o que vamos fazer para comparar um J. Neste caso, j é a lista de i mais um daqui até o fim. Então, se i de j é menor que a matriz de homens, então precisamos trocar o índice e os homens, será na verdade o próximo. Então o que estamos dizendo aqui é que os homens seriam iguais, e vamos trabalhar com esse exemplo para entendê-lo melhor. Então, primeiro de tudo, vamos começar com i igual a 0, i igual a 0. Nós armazenamos n mínimo 0. Agora estamos olhando para este número e j será igual a 0 mais um é aquele que se sentou com um e, e com 1234. Então vamos terminar com quatro. Vamos comparar a matriz de um. F de um é menos que um conjunto de homens, eu de homens. Lembre-se, muitos xn igual a 0 e J, neste caso é igual a um, irá comparar T2, que está adicionando um com três, apenas matriz de mínimo, matriz de 0. F. Dois é menos de três, então o mínimo agora não é este. Não está mais no índice 0. Está no índice j, neste caso no índice um. Então vamos dar valor mínimo e nu de um. E a mesma coisa de antes. Agora, J é igual a dois. Compararia j, I, um de j e um de dois. Temos a I2 aqui, cinco com qualquer um dos novos mínimos, que é um. Então você deve comparar agora como cinco com 25 é maior que dois, então nada vai acontecer. Então vamos para aqui, comparamos matriz de três, que é um com L2. Então um é menor do que T2. Então precisamos dar o valor mínimo e novo, o valor de um. E, finalmente, temos aqui em que índice, o valor mínimo como depois de encontrar o mínimo usando isso para loop, precisamos trocar este mínimo com o elemento na lista classificada onde devemos classificá-los. Então o que você deve fazer é, como de costume, vamos tomar um mínimo consultado em um inteiro chamado amortecido que. Mudamos o mínimo com os nossos olhos. E, por último, dar a esta matriz de ID de índice i no índice i, o valor de n. Então aqui nós trocá-los e vamos voltar e usar este método aqui. Então seleção e as matrizes, matriz, e a mesma coisa. Vamos imprimi-los e vamos conseguir 123510. Então eu acho que a classificação de seleção é mais fácil do que a inserção. Então, em termos de compreensão, é basicamente apenas encontrar o mínimo no loop interno para e, em seguida, trocá-lo com o primeiro elemento aqui. Mas aqui. E isso é para seleção, então ele vê-lo no próximo vídeo.
19. Sort de bolhas: O terceiro algoritmo de classificação que vamos falar é bubblesort. Bubblesort é o algoritmo de classificação mais simples que funciona trocando repetidamente os elementos adjacentes se eles estão em águas subterrâneas. Portanto, considere esta lista de cinco elementos. Em primeiro lugar, comparamos os dois primeiros elementos
e os trocamos uma vez que cinco é maior do que um. E então fazemos a mesma coisa para o número 235 é maior que quatro, então devemos trocar. Então este é o ninho agora. E a mesma coisa para o número do elemento. 345 é maior que dois, ela deve trocar. E, por último, temos 58. E como estão na ordem correta, oito é maior que cinco, então não trocamos. Agora, podemos ver que esta lista ainda não está classificada, já que temos 1424 é maior do que dois. Então o que você deve fazer é repetir os mesmos passos e outra vez até chegarmos à lista ordenada. O pior cenário, se tivermos o aqui um elemento, por exemplo, que dizem 0. Então este 0 deve ser trocado 12345 vezes. Temos seis elementos nesta lista. E o pior cenário é trocar isso 05 vezes. Então, se temos uma lista de n elementos, devemos trocar n menos uma vez. Então, podemos executar esta operação n menos uma vez, e eventualmente você vai obter esta lista ordenada. Então vamos em frente e escrever este código para criar outro método. Ou ele bolha com uma matriz ID de nome de parâmetro como de costume e iria trabalhar aqui. Então, primeiro de tudo, temos um loop for. Como dissemos, de 0 a n menos um, podemos dizer array.length. E dentro deste para loop temos outro para loop para trocar a cada dois elementos. Se o código errado para nós comparamos a cada dois elementos adjacentes, um de j é um de j é maior do que um de j mais um. Então vamos trocá-los. Vamos criar um integer tamp. Agora aqui, RAM spring, e a mesma coisa aqui. E se considerarmos que a temperatura é igual ao ponto de
matriz um j e um j, o que quer que haja em j mais um. E então se j plus1, o valor sal, e este é o nosso método e eu sinto muito, teremos n menos um e n menos um. Vamos usar esta bolha e usá-la aqui, e imprimir a última mais uma vez. E vamos conseguir 325110. Isto é antes de comer e depois de salgar 123510. Agora, nosso código pode ser melhorado fazendo uma tarefa simples. Então, por exemplo, aqui, nós trocamos os elementos aqui. Primeira vez. E na segunda vez, só precisávamos trocar 42. E esta lista está ordenada agora. Mas em nosso exemplo, somos obrigados a passar por toda a lista e menos1 vezes. Então uma coisa que podemos melhorar é f. E chegamos a um ponto em que nosso loop interno para não executar qualquer tarefa, então podemos equacionar porque não temos elementos para trocar. Então, podemos fazer essa tarefa usando um booleano. Então vamos dar o nome de SWAT. Primeiro de tudo, é, deve ser e não dar-lhe o valor aqui vai dar-lhe o valor dentro do nosso exterior para loop. Swap dois será primeiro igual a false neste caso. E se, se nós só vomitarmos pelo menos uma vez, então depois de sair deste loop interno vai verificar swap. Se trocado igual a false. Então não realizamos nenhuma troca aqui. Então, podemos sair do loop for uma vez que nossa lista está classificada agora. Então podemos quebrar. Caso contrário, será a troca contínua. E executamos o código, obtemos o mesmo resultado de antes. Mas agora é muito mais simples e não levará tanto tempo quanto antes. Então isso é para bubblesort, o algoritmo de classificação mais simples entre todos eles. E vejo você no próximo vídeo.
20. Sort: Passando para outro algoritmo de classificação, merge sort. Merge sort é um algoritmo de divisão e conquista. Então deixe-me ir em frente e criar uma nova classe. Subclasse, criado nome de inserção que mesclou. E ele vai discutir o tipo de fusão. Primeiro de tudo, vamos considerar uma pequena lista de quatro elementos e depois discutir uma lista maior. Por exemplo, vamos considerar uma lista com quatro elementos, 2431. Então, em, nós vamos fazer é dividir esta lista em dois lista. O primeiro teremos 24, conterá dois elementos, e o segundo terá os dois últimos elementos, 31. Então vamos classificar cada lista sozinho. Então, 24 já estão classificados, então não precisamos fazer nada, apenas digitá-los. E aqui temos 31, precisamos trocá-los. Então esta é a nossa segunda lista ordenada. E depois disso precisamos fundi-los. Uma vez que eles são classificados. Então, o primeiro elemento deve ser o menor. Então vamos comparar o primeiro elemento nas duas listas. Aqui temos 21. Então alguém é explorado e escreveria um. E então vamos comparar dois com 32 é menor que dois, e então três com quatro. Mesma coisa, orgulho v e, em seguida, ainda tem o último elemento na primeira lista, desde quatro. E então terminamos. Agora, vamos usar uma lista maior. Temos nesta lista sete elementos. Dividimos esta lição para banheiros. E a primeira lista será quatro elementos e o segundo três elementos. Então fazemos a mesma coisa com esta lista dividida de dois a 22, a mesma coisa com a outra também. E ainda temos apenas um elemento, então vamos dividi-lo em um e vamos fazer a mesma coisa. E esta lista, nós temos dois elementos, iria dividi-la em um elemento e cada lista. E então teremos a lista 1234567. Cada lista contém apenas um elemento. Depois disso, precisamos fundi-los. Começamos com os dois elementos aqui. Temos vinte e sete e trinta e oito. Vinte e sete é menor do que você escreveria 2738. A mesma coisa aqui, 343982. E depois disso, precisamos mesclar as duas listas aqui, como fizemos no exemplo anterior. Então, primeiro de tudo, temos três, depois temos vinte e sete, trinta e oito, quarenta e três. A mesma coisa aqui. E finalmente temos a nossa lista finita salgada final. A idéia de tipo de fusão é bastante simples. Ele requer para chamar o método seria mais de 1s, dois até chegar. Lista de um elemento e,
em seguida, recriar listas classificadas como mostrado aqui. Vamos escrever agora. Então, para completar a classificação de mesclagem, precisa escrever dois métodos. O primeiro método poderia ser pensado, a principal função que classifica o array usando outro método. Então vamos escrever. Vazio público. Vamos chamá-lo de estático público, vazio. E ele vai aceitar um inteiro e nenhum índice e índice alto. Eles representam por onde devemos começar? E então, se baixo é menor que o difícil, então podemos continuar. Caso contrário, não precisamos fazer nada. Isso significa que baixo é maior ou igual a alto. Neste caso, temos apenas um elemento na lista e não precisamos citá-lo. Então estamos trabalhando se baixo é menor que alto. Então o que devemos fazer aqui é para o índice médio igual a baixo dividido por dois. E então o que vamos fazer é classificar e dividir a lista em duas listas. E então, então, a parte esquerda sozinho e então a direita, mas assim pode fazer isso entrará no nosso Em um, temos com baixo e, em seguida, classificar a direita, mas em um meio mais um. E depois disso, precisamos mesclar as metades classificadas. Então vamos chamar uma mesclagem de limite de método. E levará como parâmetros à esquerda, baixo e alto. E vamos em frente e criar nosso método de mesclagem. Então temos aqui pode torná-lo privado, privado, estático, vazio, mesclado e como método
habitual. E agora precisamos encontrar os tamanhos dos dois subarrays e ser mesclados. Assim, o primeiro tipo é limite n um igual a menos um. E o segundo é N2 igual a oi menos. Agora temos os dois tamanhos. Novas listas. Então, nomeamos a lista um. Ou podemos emitir esquerda e direita. Então deixamos o tamanho e a direita. Este segundo tamanho. Depois disso, você precisa copiar os dados deste array original para nossos dois arrays. Agora, nós fazemos isso. Nós simplesmente usamos um loop for com o limite de un1 e copiamos todos os dados da direita para a esquerda. Então esquerda i igual a i. e outro para loop para copiar os dados
da parte direita da matriz para a nossa lista chamada direita. Neste caso, vamos começar com uma matriz de meio mais um e mais j. e agora copiamos os dados aqui. Além disso, sinto muito. E é assim que copiamos nossos dados. Agora, precisamos fundi-los juntos. Então o que você deve fazer é criar um loop while para copiar todos os dados que armazenamos e esquerda e direita copiados de volta para a nossa atualização original. Então, como dissemos neste exemplo, depois de ir para esta fase, precisamos armazená-los de volta na lista original. Então aqui vamos comparar os dois elementos e, em seguida, vamos iniciá-los e a matriz original e a mesma coisa aqui. Comparamos esses elementos juntos e obteremos nossa lista classificada. Então vamos voltar ao nosso código e escrever um loop while. E a condição deste loop while que ainda
temos elementos na esquerda e na direita. Então, aqui vamos criar inteiros i igual a 0, e a mesma coisa para J, 0. E vamos criar um inteiro e nome para nomeá-lo, que é igual a o. Agora, enquanto i é menor que n, um, que é o tamanho da esquerda e J é menor que. E dois estarão trabalhando na encosta. Agora primeiro de tudo, vamos comparar esquerda com a direita de j, de i é menor que j, então nós armazenamos. Este componente e a lista original. Então um será igual à esquerda. E então nós incrementamos I.
Já que terminamos com isso, por exemplo, vamos voltar aqui. O que fizemos neste caso foi compararmos a esquerda de i aqui, 27 com três. F, 27 é menos de três. Devíamos guardá-lo aqui. Agora, neste caso, 27 é maior que três, então devemos armazenar três neste caso. Então, caso contrário, devemos guardá-lo. E em qualquer componente derivado k e incremento j por um. E em ambos os casos, devemos implementar k Uma vez que será preenchido de qualquer maneira. Agora, depois de terminar este loop while, podemos ter alguns elementos restantes em qualquer lista. Então, para preencher o original, devemos completar o que resta em nossas duas listas. Isso criaria um loop while. Enquanto eu é menor que N1. O N1 se i é igual a N1. E nós saímos deste loop while por causa de i igual a um, então este loop enquanto não funcionará uma vez que já seria igual linha um. Então, se este for o caso, nós só devemos comprar o que há na parte esquerda e incremento, incremento k. E a mesma coisa com n2 se j é menor que e fazer a mesma coisa exata, para escrever incremento j e k. Então agora estamos feitos com a nossa função de mesclagem. E vamos em frente e usá-lo. E eu vou principal método. Então vamos voltar. Mas antes vamos verificar nossos limites. Aqui temos esquerda e direita. E aqui devemos começar com um nó. Uma vez que não estamos sentados com zeros, sentou-se com qualquer que seja o nosso índice aqui. E agora vamos voltar e documentado aqui. Nosso método principal. Isso cria um atraso igual a, neste caso, quatro a 718 e usá-lo agora, use o tipo com um comprimento 0 menos um. E, em seguida, use um loop for para imprimir nossos elementos. E discórdia 12478. Então isto é para a Fusão. Então, vejo você próximo vídeo.
21. Classificação rápida: Como a classificação de mesclagem, quicksort é um algoritmo de divisão e conquista. Ele leva um elemento como Pivot e particiona a matriz em torno do pivô. Existem muitas versões diferentes de quicksort que pivô grande e maneiras diferentes. Podemos escolher o pivô como o primeiro elemento. Primeiro elemento, elemento aleatório, ou a mídia. Eu expliquei o que é pivô em um momento. Primeiro, vamos escrever uma lista. Então considere que temos uma lista contém 101819. E esta é a nossa lista. Agora nós escolhemos elemento como um pivô. Então vamos em frente e escolher, por exemplo, o último elemento e separá-los para entendê-lo. E vai ter que fazer a mesma coisa aqui. Então aqui temos esta lista e este é o nosso pivô. Então, aqui em baixo. E aqui temos o primeiro elemento. Agora precisamos de duas setas, 2,2 a duas posições nesta lista. O primeiro, começamos com o primeiro elemento da esquerda e o último elemento antes do pivô. Então aqui temos o nosso primeiro, digamos que este é o primeiro elemento e este é o último. Agora, o que faremos é comparar o primeiro elemento se for maior do que o pivô, do que precisamos trocá-lo, precisamos acabar com um orçamento que é
menor do que o pivô e a outra parte deve ser maior que o pivô. Então, para fazer isso, primeiro, dez é maior que o pivô. Agora, então vai se mover, vai passar para 80. Aqui temos 80. Então agora estamos em 8050. Então 80 está pronto para ser trocado. Agora vamos olhar para 5050. 50 é maior que o pivô? Não, então podemos trocá-lo. Então agora trocamos 50 por 80. Aqui terá 80, e aqui temos 15. Agora mudamos as posições dessas setas. Temos esta flecha na 42ª 30. Agora, a mesma coisa fará a mesma coisa aqui. Temos 13, 30 é menor que o pivô? Sim. Então não precisamos trocar. Ele vai para outro ir para 90. E agora vamos comparar 90 com 40. 90 maior que o pivô? Sim. Então precisamos trocá-lo. 40 é menor que o pivô? Sim. Então precisamos trocar esses dois elementos, terá 90 aqui. E as, agora as duas setas, vamos nomeá-las para poder ver o que vai acontecer. Temos baixo e alto. Antes de trocar, estas eram as posses, baixas e altas. Baixa na posição 0123 e posição alta para. Agora, depois de trocar os dois elementos, precisamos incrementar em um e diminuir alto em um. Então eu vou estar em posição, nesta posição e baixo será nesta posição. E sempre que o baixo é igual ou superior ao alto, podemos saber que terminamos aqui. Desde que o lobo passou alto. Agora, a última coisa que devemos fazer é trocar este elemento com o pivô. Então você terá 17 E no pivô 90. Agora podemos ver que todos os elementos menores que 70 e todos os elementos aqui são grandes e 70. Então esta é a idéia do QuickSort. Podemos executar este mesmo algoritmo exato para esta lista. Podemos escolher 40 como o pivô e trabalhar em conformidade. E a mesma coisa acontece aqui. E deixamos a recursão fazer o trabalho por nós. Esta é a idéia geral e vamos usar a recursão para ser capaz de implementá-lo mais de uma vez surgiu. Então temos dois métodos aqui. Primeiro método será privado, inteiro. Vamos renomear partição. Levará os parâmetros e emitirá. E baixo do que este método, onde tomamos o último elemento como o pivô. O elemento pivô em sua posição correta na matriz classificada. E casos todos os elementos
menores, menores do que o pivô para a esquerda e maior para a direita. Então vamos em frente e começar com este método. Primeiro de tudo, temos o nosso pivô é criado. Agora o vetor é igual ao último elemento nesta lista. E temos o índice de elemento menor. É um sname i, que é igual a menos1. E neste caso, começamos com o nosso loop for. Começamos por baixo. Todo o caminho até. Agora, precisamos verificar se o elemento atual é menor que o pivô. Então, se j é menor neste caso, e precisamos incrementar i. Um, swap e array j. Então vamos trocá-lo. E a a. Então igual a,
desculpe, a igual a i, igual a j. e finalmente, de volta a G. Então agora nós trocamos os dois elementos. Depois de terminar com este loop de palavras, precisamos trocar o pivô com um i mais um. Então, neste caso, crie outra hora e troque os dois elementos. Como dissemos. Aqui, temos o pivô no local a. e depois dando o bronzeado dois. Agora nós trocamos os dois metadados para elementos e, em seguida, vamos simplesmente retornar mais um. Então este é o nosso método, o método de partição. Este método tomou o último elemento como Pivot, coloque o elemento pivô em sua posição correta no ordenado em um, e coloca todos menores para a esquerda e maior para derivado. Agora, o outro método é a função principal que implementa esse quicksort. E vamos chamá-lo de estático público, vazio. Para que fosse preciso três parâmetros, como de costume, e baixo e alto. Primeiro de tudo, vamos verificar se o fluxo não é maior que alto. Podemos trabalhar de outra forma não funcionará porque não fará sentido. E nós teremos, vamos criar um inteiro, vamos nomeá-lo por, por é que particionamento e profundidade. Isso vai, onde vamos usar este método que criamos aqui. Então pi usaria partição no baixo. Agora, depois de obter o índice, agora, devemos classificar os dois
, diminuir a parte esquerda, certo? Mas então vamos usar o mesmo método mais uma vez sem outra maneira de Pi menos um. E a mesma coisa por mais uma maneira de escrever. E então terminamos com esse método. Você pode usá-lo. E o nosso método principal. Então criamos uma matriz, por exemplo, vapor, e com alguns valores 426173. E vamos chamar o método de classificação 0 e o comprimento atualizado menos1. Em seguida, crie um loop for e imprima os elementos desta lista. Então, como de costume, com algum espaço aqui, e vamos em frente e correr. O código receberá 1234567. Então, esta é a matriz é ordenada matriz depois de executar este QuickSort. Então este é o fim para Quicksort. Vejo você no próximo vídeo.
22. Busca linear e binária: Às vezes queremos verificar, colocar um elemento da lista. E aqui podemos usar algoritmos de busca. Temos vários algoritmos de sessões e começaremos com a busca linear. Então vamos em frente e criar um nome de classe. E, em seguida, o método principal, vamos criar nossa matriz. Então esta é a nossa matriz. E vamos supor que você deseja procurar o número para um inteiro, número igual a dois. Agora, esta busca linear é suposta para
passar por toda a lista e verificar se o elemento nesta lista é igual a dois. Devolva a posição. Caso contrário, se nenhum elemento corresponder a este número, devemos retornar menos um. Então vamos em frente e criar nosso método. E vai levar essa lista e um número inteiro. Então o que vamos fazer é comparar este número com cada elemento desta lista. Então use um loop for para ver todos os animais da lista. E posição número dois. Então devemos devolver esta posição específica. Caso contrário. Portanto, o método não funciona. Deveríamos retornar um inteiro. E caso contrário, se melhor através de toda a lista e não retornamos qualquer inteiro, então não encontramos o número é especificado número menos um. E se usarmos o número t no n e imprimi-lo, teremos decks do número dois. Agora aqui, 22. Vamos mudar o número, por exemplo, dois para seis. Então aqui encontramos o número seis no índice três nesta lista. E a mesma coisa se mudarmos, por exemplo, para nove e imprimi-lo, teremos quatro e x quatro. Agora, nós tentamos outro número que não está na lista, nós temos menos um. Então é assim que a pesquisa funciona. É muito simples, mas é preciso. Muito tempo. Falaremos sobre a complexidade do tempo mais tarde para cada algoritmo. Agora, vamos passar para outro algoritmo de busca é a pesquisa binária. Aqui, devemos ter uma matriz ordenada ou lista, e você saberá o porquê em um momento. Assim, a idéia de pesquisa binária é pesquisar uma matriz ordenada dividindo repetidamente
o intervalo de pesquisa pela metade para começar com um intervalo que cobre toda a matriz. Se o valor da chave de pesquisa for menor do que o item no meio do intervalo, estreitou o intervalo para a metade inferior, caso contrário, reduzi-lo. A metade superior. Verifique repetidamente até que o valor seja encontrado do intervalo ou o intervalo esteja vazio. Então vamos olhar para um exemplo. Aqui temos esta lista. Em primeiro lugar, pegamos o elemento do meio. Aqui. Neste caso, são 16. E agora queremos procurar por 23. E nossa matriz está classificada, como dissemos. Então verificamos se 23 é maior que 16, então pegamos essa metade. Caso contrário, quem deve tomar esta metade? Agora, já que é maior que 16, então vamos ignorar todos os elementos aqui porque temos certeza absoluta de que 23 é criado depois todos eles, uma vez que eles são classificados. E temos de verificar agora esta parte. E pegamos no meio desta parte e fazemos o mesmo aqui. F2 e F3 é maior que 56. Não, não é. Então temos de ir pela esquerda. Mas, e ele começou a usar o meio como 23. E encontramos 23 para retornar o índice cinco, neste caso. Por agora. E o nosso método. Vamos criar um novo método, pesquisa binária. E vai levar uma matriz como de costume. E o baixo índice X. Então X é o elemento para a sessão quatro nesta lista. E agora precisamos encontrar o meio e a profundidade. E para fazer isso, vamos voltar e ver neste exemplo, aqui temos baixo e alto para o que fizemos é dois, subtrair nove menos 0 sobre 4.5 porque seu inteiro, ele levará quatro. E a mesma coisa aqui, que pegou 59 menos 54 sobre dois, que é dois mais o índice baixo mais cinco igual a sete, sete fundamentalistas. E a mesma coisa que fizemos aqui. E vamos voltar e definir a condição de que se alto é menor do que a carga, então menor ou igual ao nó do que fizemos. Caso contrário, devemos trabalhar. Então, aqui é maior do que a carga funcionará. Caso contrário, quando
virarmos, não devemos retornar menos1. Agora, vamos descobrir que o nosso meio, como dissemos, é igual a baixo mais alto menos baixo de um dois. Então este é o nosso metal. Se elemento de metal é igual ao nosso x é igual a dois asserção. E depois voltamos. Caso contrário, devemos verificar, como dissemos, vamos voltar aqui. Neste caso temos 2323 é maior que 16. Então vamos trabalhar com isso. Mas vamos fazer os mesmos selos exatos e esta parte, caso contrário, devemos fazê-lo passos neste bug. Então, para fazer isso, nós simplesmente comparar em a x. F em a é maior que x, devemos retornar BinarySearch. Este é o mesmo, mas baixo, e precisamos mudar como para o meio menos1 vai. Temos certeza absoluta de que o meio antigo e todo o resto dos elementos no lado direito maior que S, então o x não retornaria. E busca binária para procurar o lado esquerdo. Então começamos com o lado direito, sinto muito, o metal mais um todo o caminho até o alto e o mesmo número x. Então é isso. Vamos voltar e implementado aqui. E nosso método principal, vamos imprimir a pesquisa binária em um 0 e menos um e o número de busca de números. Vamos em frente e rodar o código. Vamos ter menos 12, por exemplo, seis. E nós vamos conseguir. Então, o sexo está na posição três. E esta é uma busca binária. A pesquisa binária é muito mais rápida do que a pesquisa linear. Desde que cada vez que estamos a ver a lista, estamos a cortá-la ao meio. No entanto, em busca linear, somos obrigados a percorrer todos os elementos da lista. Ainda temos alguns algoritmos de busca e falaremos sobre eles nos próximos vídeos.
23. Busca de pular: Como a pesquisa binária, jumps é um algoritmo de busca para ordenar matrizes. A idéia básica é verificar menos elementos do que a pesquisa linear, pulando à frente por abas fixas ou ignorando alguns elementos em vez de procurar todos os elementos na lista. Então, por exemplo, considere que temos essa lista. Temos 16 elementos aqui. Vamos supor que estamos procurando o número 55. Assim, a busca de salto vai encontrar o valor de 50 usando alguns passos. Primeiro, vamos considerar que o tamanho do bloco a ser saltado como para desde 16, raiz
quadrada de 164. Então, primeiro de tudo, ele vai saltar do índice 0 para o índice quatro. Então ele vai saltar para 01234. Ir para este elemento em comparação com 5535 ainda é maior do que três. Então saltamos mais uma vez para qualquer um. A mesma coisa aqui, 21 é menos de 55, então precisamos pular, vai pular para 144. E então podemos ver que 144 é maior que 55. Então vamos voltar para 21 e fazer uma busca linear de 21244 até encontrarmos nosso elemento para o número 55. Nós geralmente usamos a raiz quadrada de comprimento como o tamanho do bloco a ser saltado. Porque na pior das hipóteses, este é o melhor passo a ser dado. Então vamos começar com o nosso código. Ir para os principais ij's de inteiro e x que vamos procurar nesta lista. E aqui, em primeiro lugar, precisamos armazenar a duração do dia. Temos de escolher a nossa pilha. E como dissemos, vamos tomar a raiz quadrada de n usando a massa. E esta raiz quadrada de massa, por exemplo, suponha que temos 17 elementos, dê US 14 certos números. Então, depois de tomar a raiz quadrada de e formatamos usando Math.Floor. E então, desde que estamos armazenando em um inteiro converge para ENT. E se o elemento existe, então precisamos encontrar um bloco onde o elemento está presente. Então vamos voltar ao nosso exemplo. E ele 55 está entre 2144. Então precisamos encontrar esses dois elementos. E já temos um número inteiro. Criamos outra entidade ou vamos chamá-la, por exemplo, anterior, líquido para 0. Então, no início, anterior é igual a 0, então ele está na posição 0 e o passo está na posição quatro. E se o elemento não for encontrado neste intervalo, então devemos dar anterior o valor de quatro. Então, o anterior está agora na posição quatro e precisamos adicionar quatro ao passo. Então passo seria na posição oito e continuar até encontrarmos nosso elemento neste intervalo e nosso intervalo. Então, para fazer isso, precisamos criar um loop while e definir o loop selvagem como em é menor que x. agora, podemos chegar a um ponto onde se continuarmos adicionando quatro, o passo, poderíamos ter pisado maior que n, então não podemos acessar a meio passo. Então, em vez de acessar matriz de passo que diz um radar mínimo entre passo e, e. Então, toda vez que
executamos esse loop, precisamos mudar anterior para o novo valor. E o mesmo para a etapa criar para adicionar. O que quer que tenhamos aqui. Então acrescentou. E então vamos obter anterior é maior ou igual a. E então estamos acabados. Não encontramos o animal que simplesmente retorna menos1. E ele devemos mudar para inteiro. Agora. Então, o que estamos dizendo aqui neste loop while, vamos usá-lo neste exemplo. Primeiro de tudo, temos anterior igual a 0 e passo igual para posse. Para. Agora. Vamos passar por isso enquanto loop. Primeiro de tudo, vamos verificar matriz de mínimo entre passo e, em seguida, passo é certamente menor do que n. Neste caso, passo é igual a quatro. Matemática em um de quatro, que é três. Neste caso, vamos verificar se três é menor que x. sim, então vamos continuar executando isso enquanto loop vai mudar os valores. Agora, anterior é igual a quatro e passo é igual a oito. E então vamos verificar se passamos os limites. Se anterior é maior ou igual a n, então passamos os limites e fizemos, não
encontramos nenhum número que corresponda aos atos. Então agora estamos na posição quatro. E posição oito. A mesma coisa. Comparamos este 21 com 5521 é menor que 55 e
precisamos executar o loop while mais uma vez anterior está agora na posição oito. Portanto, esta é a posição para este auxílio de posição. E o passo está na posição 12. Neste caso, temos 144. Então compare cento e quarenta e quatro, cinquenta e cinco anos menos do que um 144,
em seguida, sairá do loop. Tendo anterior o valor de oito e passo o valor de 12, então temos o nosso intervalo e 55 está neste intervalo. Agora, depois de sair do loop while, precisamos executar uma busca linear para x e y e outro loop while. Então, enquanto nos sentamos com o anterior,
agora, uma vez que o anterior está na posição oito e passo está na posição cento e quarenta e quatro e cinquenta e cinco, que mostrou que o receptor é indistinto terceiro intervalo, então vamos começar com 21 e continuar. Tão largo transporte no anterior é menor que x, então vamos incrementar em um. E se chegamos a um ponto em que anterior é igual a qualquer passo, igual a 12 sobre n, Então igual ao mínimo entre os dois inteiros, qualquer carimbo. E então precisamos quebrar ou retornar menos1 pode simplesmente retornar menos um. Neste caso, já que não encontramos o nosso número. E então verificamos se encontramos o elemento. Então, se array anterior é igual a x, então retornamos esta posição e retornamos menos um. Se morrermos, não encontraremos. Então, isto é aqui. Temos um somador não pode convergir de n Booleano, temos um igual faltando. Então é isso, esta é a nossa função. E vamos em frente e escolhê-lo aqui. Então vamos imprimir pedaço e vamos procurar por 55. Então vamos pegar isso e colocá-los em nossa matriz. Então este é o nosso array e ele vai retornar dez. Então 55 está na posição dez. Então estas duas primeiras linhas eram das funções passadas agora esta hora do que a nossa posição onde 55 está nesta lista. Então é isso para saltos. Vejo você no próximo vídeo.
24. Pesquisa de interpolação: E outro algoritmo de busca como busca por interpolação. pesquisa de interpolação funciona melhor do que a pesquisa binária. Porque a pesquisa binária sempre verificar em uma base de elemento intermediário. Mas a pesquisa de interpretação pode ir para diferentes locais de acordo com o valor de P a ser pesquisado. Então, por exemplo, se quisermos procurar o número três e esta lista, se usarmos a pesquisa binária, vamos verificar no meio. Então, ou 1321034, então este é o meio da lista. No entanto, se usarmos a pesquisa de interpolação irá para o valor que está mais próximo do nosso número usando uma fórmula específica e falaremos sobre isso mais tarde. Então ele três está mais perto de 0 do que está mais perto de 610. Então nossa fórmula nos levará a um número entre estes. Então, a mesma idéia que a pesquisa binária, mas em vez de ter um elemento intermediário, teremos uma posição que mudará de acordo com nossos elementos. Então vamos em frente e criar nosso método público. Vamos chamá-lo de interpolação. E como normalmente para tomar uma matriz de elementos e o tamanho do elemento, bem
como o t ou vamos dizer x. agora, precisamos definir nosso baixo e alto e baixo igual a 0 e será e menos1. Agora vamos entrar no nosso loop while. Baixo é menor ou igual a i. Caso contrário, não precisamos mais trabalhar porque não encontramos nosso elemento. Então é o mesmo que fizemos na busca binária. E precisamos adicionar algumas condições. Enquanto nosso elemento x é menor ou igual a, nosso baixo é maior ou igual, sinto muito, e é menor ou igual ao nosso elemento. Assim, desde que estas condições estejam satisfeitas, podemos trabalhar aqui. Agora, sempre que chegamos a um ponto em que nosso baixo é igual ao nosso índice alto, então isso significa que nós fizemos isso ou encontramos o elemento ou não. Então vamos verificar se eu adicionar o mesmo, uma vez que eles são iguais, é igual ao nosso x. e este é o caso retorno baixo, caso contrário, retorno menos1. E depois de verificar esta condição, agora podemos trabalhar, podemos criar nossa fórmula que a mesma posição que vai saltar. Como fizemos em nossa busca binária, criamos uma posição chamada elemento de metal. Toda vez que vamos para o elemento do meio agora, criamos outro inteiro chamado posição. E a fórmula é a seguinte. É assim que calculamos a interpolação. E um de alto menos baixo. Então nós multiplicá-lo com I iria x menos um de carga. E agora verificamos se um raio nesta posição é igual ao nosso elemento, então apenas retornamos nossa posição. Caso contrário, vamos verificar se um nesta posição é menor do que o nosso elemento. Então precisamos mudar nossa posição baixa de baixa para alta mais uma. A mesma coisa que fizemos e em busca binária, mas em vez de posição, usamos método caso contrário será posição menos um. Então, caso contrário, se o temos em uma posição é maior que x, então du seria igual a posição menos1. E depois de terminar esta condição e tudo, o loop while, podemos retornar menos um se não encontrarmos o inteiro. E agora vamos voltar e usá-lo aqui. Então eu imprimi interpolação. Temos a a e B e x será o número. Então, por exemplo, vamos supor para uma busca por B. E vamos em frente e correr. Nosso código. Vai ficar para SO três está na posição 401234. isto mudar este número para 89, chegaremos à posição 11. Então 89 está na posição 11. E a última coisa que vamos verificar se inserirmos um número que não está nesta lição, 900, obtemos menos um. Então é isso para busca por interpolação. Vejo você no próximo vídeo.
25. Busca exponencial: O último algoritmo de busca que vamos falar é de busca exponencial. pesquisa exponencial envolve duas etapas. Primeiro, precisamos encontrar um intervalo onde o elemento está presente. E então faremos uma busca binária no estranho. Então vamos considerar esta lista. Temos 16 elementos e temos de encontrar, por exemplo, 89. Então o que vamos fazer é, em primeiro lugar, considerar se o nosso número é igual ao primeiro elemento desta lista. Se este for o caso, então retornamos 0, então ele está na posição 0. Caso contrário, verificamos todos os outros elementos. Começamos com i igual a um e com doublet I igual a dois, então i igual a 24816 e assim por diante. E vamos em frente e implementado para entender melhor isso. Vá aqui e você tem estática pública, e vamos nomeá-lo exponencial. Como de costume, pegue uma matriz de inteiros
e, e, e o valor que vamos procurar, nomeamos x aqui. Primeiro de tudo, como dissemos, precisamos verificar se no índice 0, se o valor estiver no índice 0, então simplesmente retornamos 0. Caso contrário, precisamos encontrar o intervalo para a pesquisa binária por duplicação repetida. Então vamos definir um inteiro com o valor de um. E entramos no loop. Enquanto i é menor que n, o comprimento da matriz. E adicione um, i é menor que o nosso, menor ou igual ao nosso número. Este loop será executado. Então vamos simplesmente multiplicar i por dois. Então, toda vez que entramos neste loop, multiplicamos i por dois. Então vamos ver aqui neste exemplo, quando podemos sair deste loop. Por exemplo, se quisermos procurar o número 13, primeiro lugar, verificamos se 0 é igual a 13. Não, não é. Então definimos i igual a um e entramos neste loop. Eu é igual a um, vou verificar. Enquanto eu em um, em i é menor ou igual a x, um é menor ou igual a 13. Sim, então multiplicamos i por. Então agora temos eu igual a dois, e vamos para o nosso próximo elemento. Aqui temos também um, é menor que 13 e i é menor que n. Então multiplicamos i por 21 mais tempo. Agora temos duas vezes 24201234. Agora, aqui nós verificamos que o é menor que 13. Então podemos multiplicar mais uma vez para quatro vezes 28. Então agora estamos com 5678, estamos com 21. Agora. Vamos verificar que 21 é menos de 13. Não, não é. Então. Saímos do loop com i igual a oito. Agora temos eu igual a oito. E para obter o nosso intervalo, temos i igual a oito e i igual a quatro, que é oito dividido por dois. Então, depois de encontrar o nosso intervalo aqui, nós simplesmente usamos a pesquisa binária. E eu trabalho na A. E aqui temos eu dividido por dois. Este é o nosso intervalo e mínimo entre i e um, i e n. Uma vez que pode ser, pode ser que i é maior do que n e não podemos trabalhar fora de nossos limites. E aqui temos nosso inteiro x. e como precisamos retornar o tipo, então simplesmente giramos a pesquisa binária. E então terminamos. Vamos em frente e usá-lo aqui. Então vamos em frente e imprimir exponencial em array.length e w. Vamos procurar, por exemplo, 13. E o código terá sete. Então 13 está na posição sete. Então vamos torná-lo melhor, melhor. E exponencial. Vamos armazená-lo como exponencial e um inteiro. Como resultado íntimo é igual a este exponencial. Se o resultado for maior do que 0, então imprimimos
o elemento está presente no índice. E imprimimos o índice. Caso contrário, imprimimos que o elemento não está presente. E Ray e agrupamento do código obterá elemento está no índice sete. Agora temos um atalho em Java que você pode usar. Então, em vez de escrever tudo isso, podemos simplesmente imprimir uma das duas linhas. Então precisamos definir aqui a condição se o resultado for menor que 0, este é o caso. Podemos imprimir. O elemento não está presente. E a outra afirmação seria elemento está presente, índice. E imprimimos o índice. Então vamos em frente e ver o que teria sido aqui. Vamos executar o código e obtemos elemento está presente e índice sete. Então, este atalho, Primeiro de tudo, método NDA System.out.Print. Nós definimos a condição que seu resultado é menor que 0. Em seguida, automaticamente este método irá imprimir a primeira instrução. Caso contrário, ele irá imprimir o que há depois dos dois pontos aqui. Então nós perguntamos a eles se há ato é menor que 0, sim, imprima isso. Caso contrário. Imprima isto. Isso é muito útil se não queremos complicar as coisas e precisamos de uma forma muito simples de impressão. Então isto é para procurar algoritmos. Vejo você no próximo vídeo.
26. Problema extra: herança: Agora que terminamos com nosso material, vamos resolver alguns problemas extras. E você começa com a herança. Criará a conta bancária. Então eu já criei um pacote chamado BankAccount. Dentro deste pacote, teremos nossa classe de pais, nomeie, conta bancária. E temos dois tipos de contas. Temos uma conta poupança e uma conta corrente. Então vamos em frente e criar duas novas classes. O primeiro chamaremos de checagem, e o outro será a conta poupança. E é claro que precisamos criar nosso método principal. Este é o nosso método de mergulhador, e criamos o nosso método principal. Agora, as duas classes, conta
bancária e apenas a mesma coisa estende conta bancária. Agora vamos voltar para a nossa conta bancária e criar alguns métodos aqui. Primeiro de tudo, temos uma variável. É o nosso equilíbrio. Então vamos nos referir a ele como protegido w. e vamos criar um construtor. E então usaremos nossos métodos. Então, saldo da conta bancária. E dizer que equilíbrio para equilibrar. Agora, Jaffa nos permite ter o mesmo nome aqui. E neste caso, precisamos fazer é referir-se a esta variável local. Precisamos usar isso. E agora nos referimos a este fora e este equilíbrio é o único no parâmetro. Agora, vamos criar nosso método. Temos o equilíbrio público. Ww2 obter saldo simplesmente retornará. Outro método, por exemplo, para retirar o vazio com um número específico. Nós iríamos específico e simplesmente subtrair essa quantidade da dependência. E outro método se quisermos adicionar uma quantidade específica. Então nós simplesmente adicionamos ao equilíbrio. Agora vamos trabalhar na nossa poupança. Então, na conta descendente temos um interesse. Então, primeiro de tudo, vamos criar nossa conta de poupança de construtor. E recebemos o apoio da nossa turma de pais com o nosso equilíbrio. E para adicionar os interesses, precisamos ter uma taxa. Então vamos criar um vinil protegido e nomeação. E nós dissemos que a taxa em 0,04. Agora vamos criar nosso método para nossos interesses, interesse anulado público, e vai simplesmente usar o método para criá-lo em nosso depósito de conta bancária e adicionar nosso interesse, que é data vezes nosso saldo. Agora, vamos passar para a nossa conta corrente. E a nossa conta corrente. Primeiro de tudo, vamos criar nosso construtor e depois falar sobre os métodos. Então, no nosso construído como você vive, cheque público, saldo da conta. E chamaremos o zelador e a penitência. Agora, toda vez que retiramos ou adicionamos um valor à nossa conta, temos um feed que precisamos pagar. Então vamos criar alguns inteiros, algumas variáveis fora. Para. O primeiro é apenas para manter a contagem de quantas vezes usamos nossa conta ou para retirar, para fora para adicionar um valor específico. Tão protegido e contagem de seções. O outro é antes de tudo, temos que tempos livres começou a retirar ou adicionar uma quantidade de graça por duas vezes. Assim, as duas primeiras vezes, nós retiramos em seu total livre. Então vamos criar nosso inteiro finito e nomeá-lo 32. E o último será turbulento. E este é o campo que você precisa pagar depois de passar as 23 vezes. Então vamos nomeá-lo v igual a 0,25. Agora, precisamos definir I vai contagem de transações em 0 igual a 0. Então você usa ir e método de depósito. Precisamos substituí-los. Então aqui temos o nosso depósito e retirada. Então eles já chamaram a linha de largura de pontos super. Não precisamos fazer esses passos aqui. Só precisamos manter o controle de nossa contagem de transações. Então, toda vez que entramos neste método, nós apenas incrementamos a contagem de transações por um. E a mesma coisa aqui. Agora, este é o nosso método e o último método que vamos criar é o método para deduzir as taxas. Então vamos dizer que é. E este método irá simplesmente verificar se a contagem de transações é maior do que dois. Então precisamos adicionar algumas taxas. Caso contrário, reiniciamos o contador. Nós definimos a taxa de transação, essa contagem de transação como 0. Transação no centro é maior que o antígeno lá fora, nós o nomeamos três é maior que três. Então devemos pegar o W. Vamos dar um nome. Taxa. E seria igual a transação 23 vezes. E multiplicado por V. Nós o nomeamos lá fora. Então vamos supor que aqui temos IDE. Agora, depois de obter esta variável vai apenas retirá-la de L. Então este é o nosso método. Agora vamos criar dois método string para a nossa classe de conta bancária. Aqui. Temos público String ToString e vamos simplesmente imprimir com o equilíbrio de turnos. O nosso equilíbrio é o nosso equilíbrio. Na nossa conta corrente. Vamos ligar, vamos chamar o super. Então vamos criar uma string e chamá-la de resultado, que armazenará nossa força. E depois uma linha e imprima as nossas contas. Então, aqui podemos adicionar nossa contagem de transações e apenas retornar resultado agora e nossa conta de poupança. Vamos substituir o método toString. Então teríamos que anular isso. E a string seria igual a super dot toString. E Adicione a este resultado, alinhe e retorne o resultado. E então vamos para o nosso método principal e criar uma conta corrente e uma conta poupança. Conta corrente, vamos dar um nome, ver. Violência pode ser 1000. E poupança conta S igual a novas poupanças para banir seria 10 mil. Vamos usar alguns dos métodos. Então ponto C com Joe iria 150. E, em seguida, esta palavra sem salvar conta como ponto com TO 2003. Depois disso. Vamos usar como. Então vá em frente e imprima a conta corrente com nosso C. e vamos imprimir a linha. Em seguida, salvando conta. E nós imprimimos s com uma linha. E então vamos usar nosso método e ver, ver, deduzir e imprimi-lo mais uma vez. E vamos em frente e realizar um saldo de conta corrente,
economizando saldo da conta com taxa de contagem. E você pode ver que o saldo aqui é o mesmo, já que mesmo que nós usamos dados, mas contagem é igual a dois. Então vamos usar e o método mais uma vez. Por exemplo C, depositar quaisquer valores, por exemplo 20. E veremos que, apesar de depositarmos e adicionarmos 20, nossa Vanessa é agora um 169.735, deduzimos 0.250 p. Então este é o exemplo para você no próximo.
27. Sequência de fibonacci: Agora vamos falar sobre a sequência de Fibonacci e resolvê-lo usando três métodos. Em primeiro lugar, a sequência de Fibonacci é a série de números em que o próximo número é encontrado adicionando os dois números antes dele. Então deixe-me ir em frente e escrevê-lo aqui. Os dois primeiros números são 01, então adicionamos 0 mais 111 mais 1232 mais 35, e assim por diante, 8132134 e assim por diante. Então esta é a ideia desta sequência. Agora, vamos em frente e resolvê-lo recursivamente, iterativamente e usando a classe Big Integer. Falaremos sobre a aula de Big Integer mais tarde. Então, primeiro de tudo, vamos resolvê-lo iterativamente. Então vamos criar um método, estático
privado que é predeterminado junto, por exemplo. E vamos nomeá-lo, senti TI. Isso levará um inteiro e a posição. E o que devemos retornar é o número na posição especificada. Então, por exemplo, se
entrarmos cinco, devemos retornar 01235, devemos retornar três. Se entrarmos em sete, devemos retornar oito, e assim por diante. Agora, como dissemos, primeiro de tudo, vamos criar um inteiro e dar-lhe um valor. E o valor em 100. E precisamos adicionar o elemento anterior é igual a 0 no início, h igual a um, e o anterior anterior, anterior, anterior, anterior anterior é igual a 0. Agora, criamos um loop for com, começamos com i igual a dois e
menor ou igual a n. E agora, toda vez que entramos neste loop, adicionamos à solução anterior, anterior, anterior. Agora precisamos mudar nossos dois valores aqui. Assim, anterior anterior terá o valor de anterior, anterior, anterior, anterior. Anterior terá com o valor da solução. Agora, nós apenas devolvemos este número após o loop for. Então vamos em frente e criar nosso método principal. Aqui. Temos nosso método principal e usamos isso. Então imprimimos Fibonacci iterativamente duração. E vamos imprimir o TPIJ com o valor. E vamos pedir ao usuário para inserir o valor. Scanner scan, scan. Por favor, digite um número, e nós vamos armazenar esse número próximo n. E vamos dar-lhe como um parâmetro aqui. Agora, se formos em frente e executar este código, vamos obter, por favor digite um número. Suponha que entremos cinco, obter a iteração Fibonacci 568, e assim por diante. E, por exemplo, temos 55. Agora, vamos usar recursão. Então vamos em frente e criar outro método, método, Karen
privada para dar-lhe um valor. E como
dissemos, precisamos criar nosso caso base. Caso base se n for igual a um ou 0, devemos terminar. Caso contrário, devemos retornar Fibonacci recursão de n menos um mais Fibonacci recursão de N menos dois. Então, os dois últimos elementos. E vamos em frente e executar este código. Use-o em nosso método principal. Então imprimimos o nazista. Porque mais. E execute este código. Obtemos um número, por exemplo, sexo, ajuda de iteração de
Fibonacci, e o mesmo resultado que usamos o método de recursão. Agora, o último método usará como grande inteiro. Então vamos usar a classe Big Integer. Portanto, esta classe é geralmente usada para operação matemática que envolve cálculos de inteiros
muito grandes que estão fora do limite de todos os tipos de dados primitivos disponíveis. Por exemplo, fatorial de um 100 contém 158 dígitos. Assim, podemos armazená-lo em qualquer tipo de dados primitivo disponível. Podemos armazená-lo e este grande número inteiro e usar os métodos e inteiro discreto plus. Então agora vamos criar o nosso método usando MC inteiro será uma estática
privada com o valor de inteiro rápido. Normalmente nós retornamos pertenceu ou inteiro ou string, agora retornando Big Integer e apenas nome. E o valor de n. como de costume. Agora, o mesmo, eu faria o mesmo que fizemos em nosso método de iteração. Então. Em primeiro lugar, precisamos armazenar a solução. O valor do grande inteiro, vamos nomeá-lo. Solução igual ao ponto inteiro grande 0. Então é assim que armazenamos 0. E a solução. Não dizemos solução Big Integer, solução igual a 0. Dizemos grandes inteiros. Agora, a mesma coisa para anterior, anterior, anterior. Então grande inteiro, anterior igual a grande inteiro. Mas um e Big Integer anterior, anterior, grande inteiro, 0. Agora começamos com o nosso loop for e começamos com dois e terminamos com n igual a n. E a solução será anterior, anterior, anterior, anterior, anterior, anterior, anterior, anterior. E então anterior anterior agora seria igual à nossa solução anterior e anterior. E então vamos simplesmente retornar a solução. Então é isso. E agora vamos imprimir System.out.Print inteiro número de
parâmetro
inteiro. Vamos rodar o código. E nós vamos pegar 556, nós temos oito. Agora, por exemplo, se usarmos um grande número como 10 mil, podemos ver isso porque levará algum tempo. E se usarmos 100 mil admitir que gera um erro. No entanto, se usarmos apenas esta classe Big Integer, e vamos inserir este número. Você pode ver que 20 mortos nesta sequência. E é um muito grande, Não realmente, não ser capaz de armazená-lo em qualquer tipo de dados primitivo. Então é por isso que usamos a classe Big Integer. Agora, esta é a Sequência Fibonacci. Usamos três métodos e aprendemos uma nova classe sobre uma nova classe, a classe Big Integer.
28. Curso de grande Inteiro: Agora vamos falar sobre a classe Big Integer. Já falamos sobre isso e Fibonacci, mas ele vai explodir mais. Então, esta classe está disponível para nós em Java para a classe matemática. E primeiro de tudo, vamos criar nosso grande número inteiro, capturado este grande inteiro favorito igual a um. Então agora estamos dando a este objeto um valor de 1. Primeiro de tudo, vamos calcular o fatorial do código, por exemplo. Então vamos dar um nome. E criamos o nosso loop para dois, o início de 12 todo o caminho para. E toda vez que passamos por isso para loop, multiplicamos dois inteiros grandes. Nós temos um método, grande ponto inteiro multiplicar e multiplicá-lo por grande valor inteiro de i. E então vamos em frente e imprimir a área de mais grande inteiro. Execute o código. Você tem o fatorial de 24. Agora vamos usar outros métodos. Nós temos. Por exemplo, vamos criar outro objeto, Big Integer, big integer, dois. Novo grande inteiro com o valor de um 197. Agora, vamos usá-lo método confirmado e obter o mínimo entre os dois objetos. Então vamos imprimir eu acho que o grande T2. E agora obtemos o mínimo entre os dois valores. Nós temos 24. E se usarmos o grande inteiro Macs, inteiro para obter um 197. Agora, por exemplo, se quisermos obter o próximo número primo maior que 197. Então, podemos usar este método. Então vamos imprimir o próximo número primo. Ao lado de um 197 é, e usar grande Instituto para próximo provavelmente prime. E nós temos o próximo primo e é um 199. Agora, ainda temos muitos métodos e usamos alguns deles. Por exemplo, temos o anúncio. Então, se dissermos inteiros grandes, o número inteiro dois, e vamos iniciá-lo em nome inteiro grande. Chame-o de edição igual a este,
e, em seguida, imprimir edição vai chegar a um 121. Então, o método restante vamos usar o toString. Portanto, este método irá retornar a representação de string decimal do inteiro grande. Para que possamos armazená-lo em uma string. Vamos chamá-lo igual a inteiro, um a string. E então já temos n aqui, então precisamos escolher um nome de cruncher número, nome de modelo. Agora, se nós imprimir o nome, vai ter 24 e o nome do ponto CharAt 0, por exemplo, vai ficar também. Então nós convertemos este grande inteiro para uma string e agora podemos manipular seus caracteres. Então é isso para a classe Big Integer. Nós não o usamos muito quando lidamos com pequenos inteiros. E ainda temos muitos métodos. Eles são tão úteis e podemos usá-los em nosso código. Então você pode explorá-los por conta própria. E agora vejo você no próximo vídeo.
29. Problemas adicionais: Recursos: Agora vamos em frente e resolver alguns problemas usando recursão. Então o primeiro problema que vamos resolver é mudar x antigos e uma string, muito sábio para considerar. Temos um código de exemplo X. Então precisamos mudá-lo para devido pela mesma coisa. Por exemplo, x x x, x. Precisamos alterá-lo para y, y i pela luz. E não faria isso sem usar loops. Então vamos criar nosso método, estático público. E deve virar ficar este nome, mudar x, y, e ele vai tomar uma posição. É agora que precisamos passar pelos animais, os personagens da corda. E primeiro de tudo, precisamos verificar se essa coisa, nosso caso base é se a string é de comprimento 0, então estamos feitos. Nós não temos nenhum caráter. Então, verificamos o SDR desse comprimento. Se SDR esse tempo é igual a 0, então simplesmente retornamos uma string vazia. Caso contrário, precisamos trabalhar. Agora, a primeira coisa que precisamos fazer é verificar se o primeiro caractere em nossa string é x. se esse for o caso. Se SDR está em z é igual a x, então precisamos fazer algo. E precisamos retornar X e convertido para y. então devemos retornar y mais. Agora, depois de terminar sem o primeiro personagem, precisamos fazer a mesma coisa para o resto dos personagens. Agora, neste exemplo, digamos,
digamos que temos x, x, x. Então o que devemos fazer aqui é comparar isto com x. Se este for o caso, então precisamos convertê-lo para i. Agora temos Y e algo assim. Agora, depois de terminar com o primeiro personagem, precisamos fazer a mesma coisa com o resto dos personagens. Então precisamos inserir este método mais uma vez e verificar se este caractere é X. Agora precisamos convertê-lo para, então vamos deixar a recursão para fazê-lo. Nós simplesmente o chamamos de método em si com uma nova string, que é substring de um até o final da string. Agora, quando chegarmos ao ponto em que temos apenas um elemento na string, então isso irá gerar um erro. Porque quando a string tem apenas um elemento, um caractere, e estamos dizendo que precisamos de todos os elementos após o primeiro caractere. Então, para lidar com isso, precisamos definir a condição STR, esse comprimento é igual a um. Então devemos simplesmente voltar. Por quê? Caso contrário, devemos retornar y mais método de quota mais uma vez. Agora, isso é para gráfico padrão em 0 igual a x. caso contrário, precisamos fazer outra tarefa. Então, se o comprimento do ponto SDR for igual a um, nós simplesmente retornamos STR em 0. Caso contrário, retornamos stdio.h I que cita o método mais uma vez. E sim, essa substring, substring de uma extremidade da string. E agora precisamos convertê-lo em uma string. Então nós simplesmente adicionar string aqui. E agora terminamos com esse método. Vamos em frente e usá-lo em nosso método principal. Este é o nosso método principal. E vamos pedir ao usuário para nos fornecer a string, por favor e armazenou-a. Uma string chamada nome. Em seguida, use este método e imprima o resultado. Então mude x, y com o nosso nome. Vamos executar o código isso em uma string. Por exemplo, x x x x, y, y, y, y. E se não tivermos nenhum x, aqui, por exemplo, ficamos altos. Agora vamos passar para outro exemplo simples. O pré-computado, o poder de n. Por exemplo, se temos 32, então isso é, como estamos dizendo, que precisamos, que queremos t para o poder de dois sobre três para o poder de 45 e assim por diante. Por isso, é muito simples. Vamos criar o nosso método. E ele vai retornar um professor para tomar dois inteiros, e, e, e. E... E eu seria caso base, se n é igual a e 0, então simplesmente retornar um. Caso contrário, devemos retornar nossa base vezes nossa base com um menos1, vez que multiplicamos base. E vamos em frente e usá-lo aqui. Vamos, por exemplo, considerar n igual a cinco e n igual a três. E imprimir com base. E então vamos rodar o código. E nós vamos conseguir, você ganha um 125. Agora, vamos passar para outro exemplo. E neste exemplo, vamos usar inteiros ou uma matriz de inteiros. Então suponha que temos esta lista, de um a 20. Então aqui temos dois e, em seguida, seguido por 20, que é duas vezes dez. E vamos dar outro exemplo, 14315 e comer a mesma coisa. Temos três multiplicados por dez, nós temos. Então, três é seguido por 13. Agora, nosso código deve retornar verdadeiro se
tivermos dois elementos e se multiplicarmos o primeiro por dez, então teremos o segundo. Então aqui nós retornamos verdadeiro aqui. E, por exemplo, 12345 deve retornar. Vamos em frente e escrever o nosso código. estática pública deve retornar um booleano. E vamos dar um nome. Por exemplo, múltiplo. E vai levar um valor. Integers tem um limite em um e o número. E este número é o índice que vamos usar a passagem através da nossa matriz. E agora vamos começar. Então, primeiro de tudo, se então dx é igual ao array.length minus1, então passamos toda a matriz e não
encontramos dois elementos que correspondam à nossa condição. E neste caso, devemos retornar falso. Então este é o nosso caso base. Caso contrário, devemos trabalhar. Agora, se o índice é inferior a um dia, comprimento menos um, então podemos trabalhar. Neste caso, vamos verificar que se matriz no timestamp
índice é igual a matriz no índice mais um, então devemos, devemos retornar true. Caso contrário, precisamos chamar o mesmo método novamente com e incrementar o índice. Então múltiplo tinha um índice
e mais um. Agora, este não é o caso, então nós simplesmente retornamos. Então vamos ver o que fizemos aqui neste caso. Primeiro de tudo, temos, por exemplo, vamos usar esse array. E no início será 0. Então n dx não é igual a esse comprimento menos um. Então, entramos neste bloco e aqui vamos verificar se o índice é menor que array.length um é um. Este é o caso. Então devemos verificar se o índice de matriz vezes dez. Então, se uma vez dez igual a dez é igual a quatro, não, então devemos chamar o método mais uma vez. E agora nosso índice é incrementado em um. Então aqui nosso índice seria quatro e, em seguida, que também é quatro vezes dez igual a três. Agora, do que o nosso índice estará na posição, nesta posição. E fazemos a mesma coisa. Três vezes dez é igual a 30. Agora nossa condição está satisfeita. Então não precisamos fazer esse método novamente. Então, vamos apenas retornar verdadeiro. Agora, neste caso, por exemplo, se usarmos esta lista, então não encontramos nenhum,
então qualquer elemento que corresponda à nossa condição aqui. Então, vamos apenas continuar a inserir o mesmo método até que o índice será, eventualmente será em array.length minus1 e vamos retornar false. Então este é o nosso método e vamos em frente e usá-lo em nosso método principal. Então deixem-me apenas comentar estas coisas. E vamos imprimir vários e criar um igual a, por exemplo, 12355310. E neste caso, que é usado este método com este em um e 0. Vamos ver o que vai acontecer. Vai se tornar verdade. Agora, se excluirmos 15 obterá fluxos. Então é isso. Alguns exemplos simples de recursão. Vejo você no próximo vídeo.
30. Como classificar: Agora voltamos aos nossos algoritmos de classificação. A estranheza os tentou com matrizes de inteiros. Agora, vamos usar matrizes de cordas. Então, aqui, um método principal. Vamos criar uma matriz de strings. Dimensionar nomes, e seria igual a alguns nomes. Por exemplo, Alix e pressione. Então esta é a minha lista. Agora vamos em frente e usar a inserção. Então vamos nomeá-lo público estático, vazio, inserção de matrizes, matrizes de strings, chamou-lhes nomes. Portanto, é o mesmo que fizemos para inteiros com alguma variação. Então começamos com o nosso loop for em i igual a um. E precisamos definir nossa força é igual a nomes em i e j seria igual a i menos um. Agora entrará em nosso loop while. Enquanto j é maior ou igual a 0. E usaremos um método disponível para nós. E é a classe String em Java. Esta decomposta para, vamos comparar a chave com outra string. Neste caso, ele foi nomeado em j. Se for menor que 0, então precisamos trocá-los. Precisamos criar uma string denominada como de costume, dar-lhe o valor de nomes, nomes de j mais um, e nomes de j mais um. Tomamos o valor do amortecimento. Agora. Então este é o nosso método e vamos em frente e usá-lo em nosso método principal. E procurar e com nomes. E, em seguida, o loop for para imprimir nossos elementos. Nós imprimimos apontado mais espaço. Vamos pegar Alex, Chris
e James, então eles estão resolvidos agora. Então nós usamos, em comparação com este método está disponível na classe String. E nós usamos isso. Temos o mesmo método aqui. Mas em vez de comparar com este sinal, usamos o método de comparação na classe String e Java. Agora vamos usar a classificação de seleção. Então vamos em frente e copiá-lo sem escrever mais uma vez. Seleção classifica, e vamos modificá-la aqui. Então vamos em frente e modificá-lo. Agora. Você precisa de uma força. E aqui nós definimos o mínimo é igual ao que eu vou. Está bem? E se precisarmos usar o método CompareTo, as duas strings. E, finalmente, temos uma matriz de cadeia que, em comparação com gays e mínimos, deve ser menor que 0. E então terminamos. Vamos voltar aqui e usá-lo. Então, em vez de usar a inserção, vamos imprimir a classificação de inserção. E poderia executar seleção são nomes e imprimi-los. Agora nós já classificamos nomes, então vamos criar outro em um. Vamos chamá-lo de nome. Dois serão iguais a nomes e usarão aqui. Seleção para que aqui. Vamos em frente e imprimi-los. Vamos conseguir, só precisamos imprimir uma linha aqui. E o código mais uma vez para conseguir inserção. Então, esta é a nossa saída e seleção, modo que obteria a mesma saída. Então este é, este, este vídeo é apenas para mostrar que você pode usar esses algoritmos de classificação não só para números inteiros, mas para força. E você pode usá-los para personagens também. Então você pode ir em frente e apertar usando caracteres em vez de strings ou inteiros. E não só a técnica de classificação, mas você também pode usar os algoritmos de busca com strings e caracteres para isso é para classificar e pesquisar algoritmos? Vejo você no próximo vídeo.
31. XML: Olá e bem-vindo de volta. E neste vídeo vamos falar sobre XML e como extrair dados de XML usando Java. Agora, antes de
fazermos isso, vamos falar sobre XML em geral. Não vamos entrar em tantos detalhes. No entanto, precisamos saber o que é XML e como podemos usá-lo. Então, primeiro de tudo, XML significa linguagem de marcação extensível. Isto significa que é linguagem de computador que usa marcação e é capaz de ser estendido. Então, o que é marcação? Marcação são as notações e símbolos que são usados para corrigir na criação de texto e indicar como o imposto deve ser exibido. Por exemplo, sempre que usamos os símbolos, o fechamento. E então esses símbolos são os símbolos de marcação. Agora, extensível significa que ele é capaz de ser esticado ou estendido. Assim, na tecnologia da informação, extensível descreve programa na linguagem de programação que é projetado para que os usuários e desenvolvedores podem expandir, adicionar às suas capacidades. Então, nesta linguagem XML, podemos criar nossas próprias tags. Não há marcas predefinidas nele. E vamos apenas ver um exemplo sobre este XML. E este é um exemplo, como você pode ver, podemos lê-lo e podemos entender a informação que temos aqui. Então, em primeiro lugar, temos uma empresa, e dentro desta empresa temos pessoal e outro membro da equipe. Como podemos ver, temos uma identificação para os primeiros cento e dez mil, e para os segundos 12 mil. Agora, dentro do bastão você tem algumas informações sobre dispersão. Então temos o nome, sobrenome, apelido e salário. E a mesma coisa para o segundo membro. E vamos falar sobre a sintaxe de XML. Tomemos, por exemplo, este exemplo. Então temos este primeiro, FirstName e temos baixo. Como podemos ver aqui, temos duas etiquetas, a etiqueta inicial e o ataque. Então, sempre que quisermos escrever, o antilog irá simplesmente adicionar este personagem aqui. E dentro de tags, podemos simplesmente escrever nosso texto. Agora, esta coisa é chamada de um elemento. Então este é um elemento do nosso código ou do nosso texto. Agora, xml diferencia maiúsculas de minúsculas. Então, sempre que escrevemos uma tag inicial, precisamos dirigir o n-type, exatamente
a mesma coisa. Então nós podemos apenas escrever aqui maiúsculo F. Isso
não vai funcionar desde XML é como Java, é sensível a maiúsculas e minúsculas. Agora a mesma coisa se aplica aqui, está aqui, para que possamos tentar. O F maiúsculo, primeiro nome aqui e seguido por FirstName. Assim podemos ver que temos. E assim, o tipo de elemento firstname deve ser encerrado pela tag final correspondente. Como você pode ver. Portanto, é um sensível e é importante lembrar isso, uma vez que nosso código vai depender dele. Agora, outra coisa é que os elementos não devem se sobrepor. Então vamos supor que eu tenho FirstName e deixe-me apenas copiar isso e colá-lo aqui. E levem isto para o fim. Como você pode ver, ele irá gerar um erro dizendo que o tipo de elemento LastName deve ser encerrado pelo sobrenome tag final correspondente. Como você pode ver aqui, temos sobrenome aqui e o último nome final tag é após o FirstName. Então XML verifica se esta tag corresponde a esta, tudo é bom. No entanto, neste caso, LastName não é assim, não
é o FirstName. E gerar um erro. No entanto, se eu apenas baseado aqui, nada vai acontecer, já que tudo está em ordem. Nós temos o sobrenome, e isso corresponde à tag de abertura ou a tag inicial, e nós temos o primeiro nome aqui. Agora deixe-me movê-los de volta como antes. E vamos passar para a estrutura de elementos em documentos XML. Então, em primeiro lugar, temos a empresa e dentro desta empresa temos funcionários. E podemos chamar esta empresa de elemento pai, e a equipe é a criança. Agora, outra coisa é a Declaração, e esta declaração é opcional e indica o número de versão do XML em uso. E neste caso, isso é divergente 1.00. E sempre que usamos esta declaração, ela deve estar no topo. Nem mesmo espaço em branco ou comando deve se tornar antes dele. Então podemos simplesmente adicionar algum espaço em branco. Aqui estão alguns comentários aqui. Precisamos adicioná-lo. A primeira linha em nosso documento. E essa declaração também diferencia maiúsculas de minúsculas, então ele pode tentar maiúsculas XML, como você pode ver. Agora vamos passar aos atributos. E um atributo especifica uma única propriedade para um elemento. E consiste em um nome e um valor separados por um sinal de igual. Então, como podemos ver aqui, temos o nosso elemento pessoal. E na equipe temos alguns elementos aqui, e estes são a criança. No entanto, podemos ver que temos um ID, e este ID é um atributo de coisas. Como podemos ver, este ID, este é o nome do atributo, e este 101 é o valor do atributo. E ele só é retido dentro da tag de início. E como você pode ver, é após o nome sem qualquer vírgula ou espaço em branco ou semi, ponto e vírgula, assim por diante. Então temos este nome igual e desvalorização seguido. Depois disso. Então fechamos nossa inicialização. Agora podemos ter mais de um atributo, mas não podemos ter dois valores para um atributo no mesmo começo que. Então, novamente, diga 10000 mais alguma coisa. Isto é errado. No entanto, podemos ter dois atributos. Vamos supor que eu tenha um número, e neste caso, este número é três. Deixe-me escrever. E como você pode ver aqui, não
há erro e funciona bem. Então isso é basicamente, esta é uma idéia geral sobre XML, como podemos ler dados desses documentos. E no próximo vídeo, vamos criar nossa classe,
nosso programa, para que possamos extrair esses dados usando Java. Mas dito isso, este é o fim deste vídeo e vejo você no próximo.
32. Processo, XML local: E vamos voltar ao nosso processo local. E este é o nosso programa Java aqui vamos escrever o nosso programa. Então, antes de tudo, precisamos criar nosso método principal. E é claro que vamos lançar quaisquer exceções que possam ocorrer aqui. E vamos apenas, nós podemos. Então, primeiro de tudo, precisamos pegar este arquivo. Então este é o XML de ponto pessoal e é armazenado aqui como podemos ver. Agora, a primeira coisa que vamos fazer é criar um arquivo e este arquivo, nomeá-lo File and New File staff que XML. Então agora nosso arquivo está aqui. É claro que precisamos importá-lo. E como antes, nós simplesmente importar java.io arquivo dot. Agora que temos nossa equipe de arquivo dot xml, como podemos extrair dados a partir dele. Então começamos com algo que é chamado de documento. E se eu apenas evitei, é em Java atua que XML analisadores pacote. E isso define uma API de fábrica que permite que os aplicativos obtenham um analisador que produz árvores de objetos DOM a partir de documentos XML. Então precisamos extrair dados do máximo. Vamos usar este documento, construir uma fábrica. E agora que importamos, deixe-me chamá-lo de DVF. E se eu escrever mais uma vez, Factory. E deixe-me ver quais métodos estão disponíveis para nós. Temos o novo método de instância. E como podemos ver, esta nova instância, é um método estático que cria uma nova instância de fábrica. E esse método usa o seguinte. Podemos ver que ele usa fábrica construtor de documentos e Java que analisadores XML, que fábrica construtor de documentos. E nós simplesmente usamos esse método. E agora temos nossos objetivos de DVF. Está documentado na fábrica. Agora, deixe-me apenas usar este DBF e ver o que é, quais são os métodos aqui. E como podemos ver, se rolarmos para baixo, podemos ver que temos tantos métodos. No entanto, estamos interessados neste novo construtor de documentos. E este novo construtor de documentos cria uma nova instância de nossa fábrica de construtor de documentos. Agora, deixe-me usá-lo. E aqui eu vou definir o construtor de documentos. Claro, eu vou importá-lo. Então, ele será importado a partir de analisadores de ponto
XML Java X apenas como a fábrica construtor de documentos e deixe-me nomeá-lo. Db será igual a isso. Agora. Depois de criar este documento será fábrica e construtor de documentos. Eu vou passar nosso arquivo e este documento, então documento que nós nomeamos no documento d. E dentro deste documento vamos usar Db dot. Como você pode ver, temos tantos métodos também. Estamos interessados neste ônibus. E como você pode ver, viés, ele analisa o conteúdo do arquivo dado como um documento XML. Então é isso que vamos fazer. Estamos indo para bares nosso arquivo. E finalmente, temos nosso arquivo analisado. E é claro que vamos importá-lo. E nós vamos importá-lo da org dot três, WC dot dm. E agora terminamos de passar nosso arquivo. Temos todos os dados e este documento D. Agora, vamos voltar ao nosso documento e vamos notar que temos pessoal. Então estamos interessados em pessoal aqui, coisas um e outras coisas também. Então deixe-me voltar aqui. E se eu adicionar d dot, podemos ver que temos alguns métodos. No entanto, se quisermos tomar os elementos desses documentos, podemos simplesmente usar os elementos get pelo nome da tag. E neste caso, podemos usar esse método, getElementsByTagName. E podemos especificar o nome para a equipe. E, claro, podemos armazená-lo em uma lista ordenada. Deixe-me apenas criar nossa lista de nós. E, claro, importado de AHRQ ponto W3C ponto para baixo. E deixe-me chamá-lo de Lista de funcionários. Agora temos a nossa lista de funcionários. Temos as coisas do pessoal um e pessoal para a lista armazenada e desordenada. Como podemos ver. Agora, como é que os acedemos? Simplesmente usará nós. Então temos uma lista desordenada. Como acessar uma lista de nós usando um ímpar? Agora e deixe-me criar um aceno e pelo nome ID pessoal nada. E, claro, o elemento dentro deste nó, deixe-me nomeá-lo pessoal ELT como elementos. E, claro, nós vamos importá-los de como de costume. E deixe-me rolar para baixo. Temos aqui todos os três WC DOM esse conhecimento. Agora que temos o nosso elemento, nó e lista de
nós, podemos começar com os nossos dados de extração. Agora, em primeiro lugar, vamos usar algo que já usamos antes, e que é o StringBuilder. E dentro da corda servirá. Vamos, nós, vamos apenas defini-la. E agora temos o nosso StringBuilder. E, claro, vamos acrescentar quantos membros da equipe temos. Então vamos acelerar aquela banda lá. E nós vamos pegar a lista de estatísticas e ver quantos membros da equipe. Então, simplesmente usamos a terceira diretriz. Portanto, há alguns, alguns mais longos e membros da equipe. E, claro, vamos chegar a uma nova linha. E podemos usar isso. E agora terminamos com o nosso comprimento. Agora, deixe-me ajustar, extrair dados do nosso documento. Então a primeira coisa que vamos fazer é passar através dos elementos dentro desta lista de estatísticas, sinto muito, denotar dentro da lista de funcionários. E para fazer isso, vamos criar o loop for, assim por diante. Como de costume, de repente em r igual a 0 e terminando no comprimento do ponto da lista pessoal. Esse comprimento. E a primeira coisa que vamos fazer é pegar esse nó da equipe e extrair um nó da lista de funcionários. Então, como fazemos esse ponto StatPlus? Podemos ver que temos alguns métodos aqui. No entanto, nós estamos indo para tomar este item, este item método, e como você pode ver, ele retorna um nó para que i, nós estamos indo para extrair este item e armazená-lo. E agora vamos acrescentar a este nó, ao StringBuilder, o número. Então sba dot append. Vamos acrescentar que este é o número da tag e seguido por I mais um, já que estamos começando em 0, entanto, não queremos começar em 0. Então o número de funcionários 12 e assim por diante. Agora, depois disso, vamos verificar se este nó da equipe é um elemento. E como você pode ver aqui, podemos ver que essas coisas como um elemento. E deixa-me voltar. Então, como você faz isso? Então f, Note que lacuna. Como podemos ver, temos alguns métodos e estamos interessados e ainda tipo de nó, vamos ficar denotados. E Ésquilo é igual a notar esse nó elemento. Então, se isso é um elemento, vamos pegar isso e armazená-lo em um elemento, como você pode ver. Então criamos aqui um elemento. Estamos simplesmente dizendo que, se este nó é um elemento, armazene-o e ELT. E como converter dois elementos e comparou o nó da equipe em um elemento. Então este é o caso. Podemos convertê-lo, nada vai acontecer. Ele vai simplesmente convertido a partir do nó dois elemento. Depois disso, vamos criar uma lista de atributos. E é assim que podemos extrair alguns atributos de XML. Como podem ver, temos a nossa identificação. Podemos extraí-lo usando este método. Então a primeira coisa que vamos fazer é criar um mapa de nó nomeado. E, claro, importou ácido que vamos apenas inicializá-lo. Então eu vou nomeá-lo atributo e, claro, elemento pessoal. Então este é o nosso elemento. E nós simplesmente obter, obter esses atributos a partir deste elemento. Depois disso, vamos criar nosso nó. E este é um nó de atributo. E aqui vamos extrair nossos elementos deste nó, desta lista
de atributos. Então nós podemos ter mais de um elemento ou um mais de um atributo aqui. Então vamos criar um loop for e passar por todos os atributos dentro. No entanto, acontece que só temos um elemento ou um atributo neste caso. E os resultados devem funcionar corretamente para outros exemplos. Então vamos criar isso para loop. E neste caso, vamos obter o comprimento desta lista de atributos. E neste caso, eu vou, nó
atributo será igual à lista de atributos como antes que ou aquele item este caso e j. Então é isso. Agora temos o nosso atributo. Podemos simplesmente acrescentar a este StringBuilder. Então, como acelerado banda. E vamos acrescentar o nó de atributo. E podemos obter o nome do nó usando o método get. E eu vou simplesmente escrever igual. E, claro, eu quero obter o valor. Então atribua nós que obtêm o valor do nó. E, claro, deixe-me apenas alinhar. E nós terminamos isso. Então até agora nós apenas criamos nossa lista de nós, nó um elemento. Pegamos este documento e o armazenamos e criamos a lista de funcionários. Então aqui temos o pessoal. Como você pode ver, temos dois funcionários, que é, que tem o id 101, e começamos com o ID 2001. Agora que temos a nossa equipe e a lista de funcionários com apenas extraí-los um por um usando este para loop. E dentro deste para loop, vamos tomar o item da lista de pessoal historiado e nó de pessoal. E, em seguida, este nó de pauta é um elemento, irá simplesmente convertê-lo em um elemento, e então apenas extrair os atributos. E, neste caso, temos apenas um atributo. Essa é a ideia. No entanto, podemos ter mais de um. Então é por isso que criamos nosso segundo para loop, e este é o loop interno para. E neste caso vamos apenas acrescentar os atributos
que temos e ainda temos que extrair os elementos. Então temos primeiro apelido e salário, e vamos extraí-los no próximo vídeo. Então, vejo você então.
33. Processo, XML local 2: Agora ainda temos que extrair a informação do pessoal. Então temos o apelido e o salário de primeira classe. E neste caso, podemos simplesmente usar o elemento staff que criamos e extrair os dados daqui. Então vamos usar sba dot append. E antes de tudo, vamos extrair o FirstName. E, em seguida, depois disso, vamos usar elemento pessoal e obter elementos pelo nome da tag. Então o elemento é o primeiro nome. E, claro, o item é 0. E nós vamos convertê-lo em algo que é legível ou fedido. Assim, podemos usar o conteúdo de contexto tributado. E neste caso, ele retornará o nó como uma string. E, claro, deixe-me armazená-lo MS drenar first_name. E então eu vou simplesmente usar este FirstName. Então eu vou acrescentar este FirstName. E deixa-me saltar para outra linha. E eu vou fazer a mesma coisa para o outro. Então temos o sobrenome. E neste caso, deixe-me copiar isto. Basicamente aqui. E este é o sobrenome. Vou extrair os elementos pelo nome da etiqueta e este é o último. E, claro, a mesma coisa aqui, item em 0 e obter conteúdo de contexto de texto. E é claro que eu vou para upended então sobrenome e salto. Agora, a segunda ou a terceira informação que vamos extrair é o, como você pode ver, apelido. E finalmente temos o salário. Então vamos acrescentar apelido. E claro, corda, deixe-me copiá-lo. Temos aqui o nosso apelido e nome getElementsBytagName. E, finalmente, nós estamos indo para anexado assim chamado salto. Então a última coisa é adicionar banda. Temos o salário. E neste caso, vamos armazená-lo e conter também. Então salário igual a, desculpe, deixe-me apenas copiá-lo. Então, salário aqui. E obter elementos por aquela viga, salário. E, finalmente, vamos simplesmente anexado em nossas informações e ao nosso StringBuilder, salário mais salto. E neste caso, deixe-me apenas, apenas sobre o que fizemos aqui. Então, em primeiro lugar, temos o nosso elemento e dentro deste elemento temos alguns outros elementos filhos. Por isso, temos a nossa equipe que é armazenada no nosso, como podemos ver, elemento pessoal. Agora, para extrair os dados a partir disso, usamos getElementsByTagName. No entanto, lembre-se que sempre que usamos este get, getElementsByTagName, Nós vamos obter uma lista de nós. Então ele os restaurou em uma lista ordenada. Podíamos ter feito a mesma coisa aqui. No entanto, uma vez que temos apenas um item, podemos simplesmente usar cada método item e extrair o primeiro item que está no índice 0. E então vamos convertê-lo em uma string usando o conteúdo de texto get. Então poderíamos ter feito de outra maneira. Então, podemos apenas criar uma lista de nós e vamos nomeá-la. E, claro, podemos usar elemento pessoal que obter elementos pelo nome da tag. E, claro, podemos usar o FirstName. E então esta é a nossa lista de nós. Em seguida, podemos usar e adicionar esse item 0 ou P8, criar o nosso loop for e assim por diante. Então podemos fazer exatamente a mesma coisa que antes. No entanto, já sabemos que nosso documento de pessoal é constituído pelo primeiro apelido ao salário, que temos apenas um de cada um deles. Então, podemos simplesmente usar esse método. Então, agora que temos o nosso bem, deixa-me ir em frente e fazê-lo. Então, execute como aplicação Java que porque você começa uma lágrima. E nada aconteceu só porque não imprimimos nosso StringBuilder. Então aqui temos o nosso primeiro para o loop termina aqui. Então System.out.print. Execute este código mais uma vez. Vamos obter os nossos dados. Então a primeira coisa que fizemos foi como podemos ver que nós apenas ampliamos um pouco. E como podem ver aqui, a primeira coisa que fizemos foi imprimir quantos membros da equipe temos. Então temos dois membros da equipe aqui. Em seguida, passamos para a nossa equipe e extraímos alguns dados. Então, é claro que nós acrescentamos. Então pessoal número um aqui, desculpe, eu não poderia ter pulado e morrendo. E deixe-me comandar isso mais uma vez. Nós vamos conseguir isso. Então, pessoal um para a identificação 101. Então, imprimimos a partir disto. Agora, uma vez que temos apenas uma idéia, poderíamos ter usado isso em 0 e remover isso para loop. Esquadrão de fuzilamento mais uma vez terei o mesmo resultado de antes. No entanto, se tivermos mais de um atributo, isso não funcionará. Ele vai simplesmente retornar para nós esta linha. Agora deixe-me voltar aqui. Depois disso, nós apenas imprimimos o nome, sobrenome, apelido e salário, e fazemos exatamente a mesma coisa para o segundo membro da equipe. Então temos pessoal para identificar 2001, primeiro apelido e salário. Agora, este é um exemplo rápido e simples sobre XML e como extrair dados de documentos XML. Nos próximos vídeos, vamos cavar mais fundo neste documento XML extraindo tipo de coisa e vê-lo então.
34. Processo, XML do navegador: Olá e bem-vindo de volta. E neste vídeo ainda estamos cobrindo XML. No entanto, este termo não processaria XML local. Nós vamos para o Google e extrair alguns dados de um site. Então vamos supor que temos, vamos ao Google e à BBC News. E como podem ver, se formos aqui, então estas são as notícias. E, claro, podemos simplesmente, se quisermos extrair dados de XML, podemos simplesmente escrever RSS dot xml. E isso vai nos direcionar para uma página, e este é o feed RSS da BBC News. Então nosso programa deve pegar essas notícias e apenas extraí-las e armazená-las ou imprimi-las no conselho ou armazená-las em um arquivo. E vamos ver o que vai acontecer. Então deixe-me apenas criar um novo arquivo. Será simplesmente uma aula, sinto muito, quando nomear. Notícias da BBC. Agora esta é a nossa classe. E dentro desta classe, como de costume, vamos usar o método principal e lançar exceção. Agora vamos começar com a nossa aula. Então, primeiro de tudo, este é o URL, e nós simplesmente vamos armazená-lo em um URL. Claro que é importante. Mas a rede que u r, eu, então eu o nome de você. E, neste caso, se eu quiser criar esse URL, posso simplesmente criar um novo URL e copiar o link daqui e aqui. Então agora temos nossa URL. Agora como podemos usá-lo, podemos usar o fluxo de entrada. E neste caso, deixe-me nomear, eu acho. E eu vou usar o ponto URL. Temos o fluxo de acréscimo, sinto muito, acréscimo de fluxo. E isso gerará um InputStream. E é claro que eu deveria importá-lo de java.io, esse fluxo de entrada. Agora que temos nossos dados, nosso XML, podemos simplesmente começar com Baden fábrica construtor de documentos como antes, importado DBF igual a documentar a fábrica. E a nova instância. Então vamos criar o nosso construtor de documentos. A mesma coisa de antes. Document DB é igual a ponto DBF e seguido por New Document Builder. Então vamos criar nosso documento e limitar o argumento desta vez. E DB aquela caixa. Vamos passar o fluxo de entrada que acabamos de criar. Agora é claro que precisamos empregá-los. Então importar do octeto três WC, entrada de Java, excelentes analisadores XML. Agora temos a nossa configuração. Podemos simplesmente começar com a extração de dados. Então, a primeira coisa que vamos fazer é criar o StringBuilder para armazenar dados. Então StringBuilder velocidade igual ao novo StringBuilder. E neste caso, vou adicionar alguma força aqui, já que eu posso usar o ponto de SP append, no entanto, eu posso usar esse parâmetro, então eu vou iniciá-los em HTML. Então deixe-me apenas criar a cabeça intitulada para o nosso arquivo HTML. Então HTML. E dentro desta cabeça temos o título. Neste caso, é a BBC News. E é claro que eu deveria fechar o título, então. Feche a cabeça e seguido pelo corpo. Eu deveria acontecer agora, o corpo. Agora este é o nosso StringBuilder. Vamos começar com o nosso XML. Então, a primeira coisa que vamos fazer é como antes, lista de nó BAD. E neste caso, vou nomeá-lo lista de itens. Claro, eu vou usar o documento que obter elementos pelo nome da tag e este nome é item. Então, deixe-me importar isso. E tudo é. Então, por que escrevi um item aqui? Se eu voltar para a nossa BBC News e clicar com o botão direito do mouse, temos visualização fonte da página. E este é o nosso documento XML. Como você pode ver, temos o título, descrição, link, imagem e assim por diante. No entanto, estamos interessados nos itens. E esses itens são itens, título e descrição. Então temos este título e, claro, na descrição, então temos outro item com título e descrição também. Então estamos interessados nos itens. Como você pode ver, temos tantos itens e vamos extrair todos eles. Então vamos voltar aqui e trabalhar com o nosso item como antes, nó, item, nós e item elemento, ELT. E é claro. Importar estes dois de todos os três WC que burro. Agora, depois de criar nosso nó, último nó e elemento, vamos criar o nosso loop for. E o limite é o documento ou document.getElementById. Desculpe, podemos simplesmente usar a lista de itens que criamos. Então lista de itens, mas obter comprimento, certo? A menos que ganhe comprimento. E agora podemos trabalhar com o nosso loop for. Então, dentro do loop quadrado vamos tomar uma nota de cada vez, então vamos armazená-la no nó do item que criamos. Então item nada será igual a itens, listar item no índice i. Agora, depois disso, vamos verificar se este é um elemento. Agora. E o processo local. Aqui. Usamos isso como, como você pode ver aqui, verificamos se nó pessoal para obter tipos de nó. Então usamos o método get. E se isso é igual ao nó elemento, agora vamos usar outro método. E podemos simplesmente usar este nó item é instância um elemento se este for o caso. Então exemplo de significa que esta nota item é instância deste elemento, desculpe aqui, instância como esta. E assim, se este nó de item é uma instância de elemento, vamos inserir esta instrução. Então este é o caso como antes, vamos converter em elemento uma história, a história no item ELT. E como fazemos, fazemos isso? Vamos simplesmente escrever elemento e seguido por item.name. Agora que temos nosso elemento item, podemos simplesmente armazená-lo e nosso StringBuilder. No entanto, estamos criando HTML. Então vamos usar o, como você pode ver, temos o título ea descrição. Assim é pensado o título em H2 e a descrição em um parágrafo. Então, como você faz isso como v ponto anexar H2. Então aqui temos a vantagem dois. E, claro, depois disso, vamos usar elemento item que obter elementos pelo nome da tag. E este nome é o título. Como dissemos antes. Se voltarmos aqui, teremos dentro do item, o título e a descrição. Então, vamos obter o título como antes, o item em 0 que obter TextContent. E depois vou fechar esta etiqueta. Então eu vou simplesmente usar perto de. Agora. Depois disso, vou simplesmente usar a tag de parágrafo para criar a descrição. Então sba dot append. E dentro disso, eu vou criar nossa tag de parágrafo, seguido por elementos de item que obtêm elementos por nome de tag. E neste caso temos uma descrição. E como de costume, esse item em 0. Em seguida, o conteúdo do texto. Claro que vou fechá-lo também. Então aqui nós fechamos isso. E agora temos nossos dados aqui. Finalmente, depois de terminar de ds, deixe-me apenas modificar isso. Então aqui temos o nosso loop for. Depois de terminar deste loop enquanto, precisamos fechar nosso corpo e HTML. Então eu simplesmente acrescento aqui, acelero isso, upendo nosso corpo próximo. Em seguida, feche HTML. Agora terminamos com a adição e estamos definidos. Então, se eu for em frente e imprimir “não “e “acelerar “, nós executamos isso. E como podemos ver, temos aqui tantas palavras. No entanto, eu só os coloquei em uma linha porque eu não os guardei em clientes aqui. Então, depois de cada descrição ou de cada título, eu vou pular alinhado. E, claro, e se eu rodar isso mais uma vez, nós vamos conseguir isso. Agora. Por que eu os guardei assim? Por que eu criei um HTML? Então vamos apenas obter esses dados e armazená-los em um HTM L phi. Então, se eu for aqui antes de criar nosso documento, Linda fábrica de documentos construtor e documento, podemos criar nosso arquivo que vamos armazenar esses dados. E assim, após o fluxo de entrada, eu simplesmente vou criar o nosso arquivo. Vamos dar um nome de notícia, e será igual a nu. Neste caso, vou nomeá-lo usado que SDM. Então HTM significa HTML. Agora que criamos nosso arquivo, preciso me opor a ele, é claro, de java.io. Depois disso, vou empregar o FileWriter. Nós aprendemos sobre este escritor de arquivos antes. Então, vamos impor o escritor de arquivos de filas. E depois disso, vamos criar um gravador de arquivos. E dentro deste arquivo de notícias, então vamos criar o escritor buffered, BW. E, claro, o novo escritor em buffer com o parâmetro de f w desafiou escritor. Então, finalmente, vamos criar o gravador de impressão, e isso usará isso para extrair, para gravar dados em nosso arquivo. Então escritor Brin, PW para ser igual a novo escritor de impressão e Vw como um parâmetro. E agora estamos prontos.
35. Processo, XML do navegador 2: Agora, depois de definir nosso arquivo no qual vamos escrever nossos dados XML em, vamos usá-lo aqui depois de anexar a tag final do corpo e HTML, vamos usar o BW, essa marca, Sb. Então vamos fechá-lo um tipo p devido ao fechamento. E agora se eu executar este código, podemos ver que temos aqui dentro do nosso projeto, temos notícias que SDM, então este é o nosso arquivo HTML. Agora, se
clicarmos nele, teremos o título e a descrição de todas as notícias. Então temos a primeira descrição do título do que a segunda descrição do título, e assim por diante. Então temos todas as notícias aqui e nossa BBC News. Por agora. Isso é algo que você pode fazer como agora isso é mutável. Então, toda vez que clicamos, então se eu rodar este código, agora, eu vou receber esta notícia que HTML. No entanto, se eu executar isso amanhã, eu vou ter diferentes títulos e descrições. Depende do tempo que o Irã discórdia. Desde então, use a mudança todos os dias. Agora podemos adicionar algo aqui, e isso é para vincular esta notícia que HTML para o navegador. Então, uma maneira de fazer isso é usar a área de trabalho. E temos um método que é chamado de desktop gad. E dentro deste método podemos navegar e vamos apresentar as notícias. No entanto, precisamos convertê-lo em URI. Tão acostumado a URI. Agora, se eu rodar este código, ele vai me redirecionar para o navegador. E dentro deste navegador, eu vou obter esses títulos e descrições. Então esta é a notícia da BBC. Eu apenas os pego do arquivo XML ou de um documento, em
seguida, estudei em meu próprio arquivo como HDMI. Agora, é claro, eu poderia usar isso daqui ou gerar um navegador usando este método aqui. E deixe-me explicar um pouco sobre MDM. E para aqueles que não sabem. Em HTML, temos tags predefinidas. Por exemplo, a borda dois é a direção dois, e B significa parágrafo. Então, sempre que queremos criar um novo arquivo HTML, primeira coisa que vamos fazer é criar a tag HTML, em
seguida, cabeça, em seguida, o título. Claro que vamos escrever um mais apertado, em seguida, fechar o título seguido pela cabeça. Depois disso, vamos escrever nosso corpo. Então, acrescentamos esta etiqueta corporal. Nós escrevemos tudo o que queremos aqui de H2 e parágrafo. Então, depois de terminar, basta fechar o corpo e fechar o HTML. E agora nós nosso SDM ampliado. Então nós o armazenamos no arquivo. Criamos o mais novo HDR. E, claro, nós apenas navegá-lo usando este método aqui. E este é o fim para este exercício. Podemos usar este programa sempre que quisermos ver as notícias. Podemos simplesmente ir ao Eclipse e executar este código. E vamos receber as notícias diretamente. E este é o fim para este vídeo. Espero que goste deste programa e vejo-te no próximo.
36. Exemplo de catálogo: Agora vamos resolver outro problema. E aqui temos um catálogo. Então este é o nosso arquivo Catálogo dot x m n. Então este é o nosso documento. E dentro deste documento temos catálogo. E dentro deste catálogo temos CDs. Como podemos ver, em cada CD temos o título, o nome
do artista, país, empresa, preço e rendimento. Agora o que vamos fazer aqui é que vamos rever todos esses CDs. Então temos tantos CDs e considerar extrair o CD mais barato e o mais antigo. Então vamos extrair dois CDs. Um que é o mais barato, e o segundo é o mais antigo quando todas essas cidades. Então, como podemos ver aqui, temos 1971, rolamos para baixo, vamos encontrar 19881987 e assim por diante. Então vamos em frente e criar o nosso último aqui. Aqui temos nossa soma L, e criarei nossa classe pelo nome do catálogo. E vamos começar como de costume. Então a primeira coisa que vamos fazer é criar o nosso método principal. Claro, jogue a exceção. E então podemos começar com a saída. Agora temos nosso arquivo aqui, então vai simplesmente criar uma importação de arquivo, importado de java.io. E vamos limitar phi igual a phi. E dentro deste arquivo temos todo o catálogo de nomes de arquivo que eczema. E depois disso, podemos começar com a criação de nossa fábrica de construtor de documentos. Então documento fornecedor Factory importado de Java extra o XML. E eu limito DVF como de costume e documento a fábrica, a nova instância. Então vamos criar o nosso construtor de documentos. Vamos nomear DB. E importante, claro. Então dB será igual a DBF, esse novo construtor de documentos. E, finalmente, vamos criar nosso documento. E este é o nosso documento e precisamos importá-lo de três WC que para baixo. Agora temos nosso documento e passamos nossos retornos de arquivo, começar com nossos dados de extração. Então temos denotar lista como de costume importado a partir daqui. E vamos nomeá-lo, nota ou um L. Então isso se refere a lista de nós. E nós também temos um nó, e nós vamos nomeá-lo nó com um n minúsculo. E finalmente temos nosso elemento como de costume importado e eu limitar ELT. Agora vamos voltar para o nosso documento XML ponto catálogo e vamos ver o que vamos fazer. Então vamos imprimir o nome do artista e o título do currículo, seguido pelo ano, caso vamos extrair o CD com
o ano mais antigo e seguido pelo preço sempre que quisermos imprimir a cidade com o mais barato preço. Então vamos criar uma ArrayList de cada um desses elementos. Então vamos criar um ArrayList para título, Teste e preço. E engrenagem vai simplesmente acabar crescer, e ignorar o país ea empresa neste caso. Então, a primeira coisa que vamos fazer é criar um ArrayList importado. E vamos tomá-lo como uma corda. E então este é o nome. E, claro, inicializando uma nova lista de arrays. E deixe-me copiar isto e colá-lo. Então temos quatro ArrayList. E neste caso, um para o nome. Dissemos que precisamos de um para o título e um preço. E o último é para o título. E isto é pelo preço. E, finalmente, isso é para o. Agora, depois de criar as listas de matriz, podemos começar com o nosso código. Então a primeira coisa que vamos fazer é, como de costume, começar com um loop for para passar por todos os elementos ou todos os CDs neste caso. Até agora. E, claro, antes de fazer isso, vamos indicar que precisamos de todos os CDs. Como é que fazemos isso? Vamos simplesmente atribuído para denotar lista db dot, obter elementos pelo nome da tag. E isto é um CD. Agora temos todos os CDs dentro do nosso e eu, e podemos começar a extraí-los um por um. Então o limite aqui é um ponto L obter comprimento. Então, o comprimento da nossa lista de nós. Agora podemos começar atribuindo para denotar um item em i e verificar se este nó é uma instância de um elemento. Então f nó, instância de elemento. Se isso é decai, então vamos preceder com o código R. E neste caso, vamos converter este nó em um elemento e armazená-lo em ELT, então elemento. E aqui vamos converter o nó que temos. E finalmente, podemos obter os dados agora. Então, dentro deste nó temos um CD, e em cada cidade temos o título, artista, país, empresa, preço e ano. Então vamos apenas pegar este título,
por exemplo, e armazená-lo em nossa ArrayList. Esse é o título. Então, como fazemos isso? Vamos pegar o título desse bloco e vamos adicionar. Elt dot obter elementos pelo nome da tag. E dentro desta etiqueta, vamos indicar que precisamos do título. E, claro, precisamos do primeiro item neste título. E este é o item 0 e obter o conteúdo extra. Agora que temos nosso título, podemos fazer exatamente a mesma coisa para todos os outros elementos. Então deixe-me copiar e colar três vezes. E agora temos o nosso como nós, como dissemos antes, temos o título, temos o nome. E também temos o Bryce aqui. E deixe-me modificar os EUA. Então aqui temos o, dissemos título e dissemos o artista e o preço. E finalmente o ano. Agora, deixe-me ser apenas uma coisa. Por que adicionamos este item em 0? Lembre-se que sempre que usamos getElementsBytagName, isso irá gerar, gerar para nós uma lista de nós. E neste caso, podemos ver claramente que só temos um elemento dentro desta lista de nós, e este é o título. E neste caso, podemos simplesmente extrair o primeiro elemento. Uma vez que temos apenas um elemento, podemos extrair o item no índice 0. Este é o primeiro elemento, e isso funcionaria aqui. Agora temos nossos dados e eles são armazenados na ArrayList. Então prosseguimos agora com o nosso código. Então, depois de extrair todos esses dados do catálogo dot xml, e agora podemos usá-los fora do nosso loop for uma vez que eles são armazenados na matriz permite lista aqui. Então, agora, vamos começar com a nossa comparação. Agora dissemos que queremos a cidade com o menor preço. Então vamos pegar preço e comparar cada preço aqui com o próximo. E sempre que encontrarmos o mínimo, vamos apenas imprimir o título, o preço
do artista, e depois prosseguir com a nossa cidade mais antiga. Por isso, em primeiro lugar, comecemos pelo prémio. Então deixe-me apenas criar um inteiro e este será o preço mínimo de aumento. Então, preço. E neste caso, eu vou atribuir um inteiro que o valor máximo, que é uma constante segurando o valor máximo e n pode ter. Então, uma vez que vamos verificar um mínimo, é melhor começar com um inteiro muito grande. Agora, depois disso, vamos passar por todos os elementos aqui e ver qual é o elemento com o menor preço. Então vamos criar um loop for e ele vai começar com i igual a 0 e igual ao tamanho do ponto Bryce. Agora vamos passar por isto e verificar se há homens. O preço é maior do que o preço mínimo aqui. Então preço que chegar em i, f, isso é decadência. Então deixe-me começar o índice aqui. Então índice do mínimo para ser igual a 0 no início. Agora, vamos verificar para este preço ArrayList. E se encontrarmos qualquer elemento que é menor do que este mínimo, vamos atribuir este mínimo para ser igual ao elemento que acabamos de encontrar. Então, como você faz isso? Então, o preço dos homens deve ser igual ao preço, mas chegar em i e nós vamos armazenar, comprar. Então índice será igual a i. Agora temos nosso índice e nosso mínimo aqui. Deixe-me ver o que é. Então aqui temos, então temos aqui o preço que é uma força. Como dissemos, criamos uma lista de array de string e nosso preço médio é um inteiro. Então, como lidas com isso? Podemos simplesmente converter essa string em um inteiro usando a extremidade integer.parseInt. E neste caso, este é o parâmetro. E a mesma coisa se aplicará aqui. Então inteiro esse ônibus e aqui temos M. maiúsculo e agora temos, então depois de sair desse loop inteiro, vamos ter o mínimo e vamos ter o índice. Então, já que precisamos imprimir o título, artista e preço, podemos simplesmente imprimir o elemento do título no índice. Este índice. E a mesma coisa para artistas e preços. Então podemos imprimir aqui, salvar o CD com
o menor preço e obter o preço que tem no índice. E podemos simplesmente dizer que o CD com o menor preço
do preço é criado por e salvar o nome assim é criado por. E nós simplesmente vamos adicionar. Então, aqui. Deixe-me apenas criar uma nova string aqui. E vamos dizer que é criado pelo artista. E este é o nome.gov. E vamos simplesmente dizer, eu vou acabar com isso e o nome da cidade e o nome. Então, o nome do CD e o título. E aqui eu tenho índice. Então agora deixe-me apenas, deixe-me apenas,
apenas este ano nós temos uma lista de array, nome, título, preço, e nós usamos o preço. Nós usamos, sinto muito, eu preciso adicionar um sinal de mais e nós temos, e se nós rodarmos este código, nós vamos ter uma exceção de formato de número. Então aqui em nosso catálogo, nós tínhamos alguns, como você pode ver em nosso catálogo, que XML temos o preço como duplo e usamos inteiro. Então, uma maneira de lidar com isso é simplesmente usar o dobro. E depois vamos dobrar. E a mesma coisa se aplica aqui. Duplo. ParseDouble. E nós temos, agora, depois de terminar isso, nós simplesmente vamos executar este código mais uma vez. E temos o CD com o menor preço de 7,20 é criado por simplesmente ler e o nome da cidade é livro de imagens. Agora, se voltarmos ao nosso catálogo e procurarmos em todo o CDC, podemos descobrir que esta informação está correta. Ainda temos o ano e vamos fazê-lo no próximo vídeo.
37. Exemplo 2: Nossa próxima tarefa é encontrar o CD com o nível mais antigo ou mais baixo. Então vamos voltar ao nosso código. E como fizemos aqui, vamos aplicar exatamente a mesma coisa, no entanto. Agora, com nosso Deus, sinto muito, rendeu um conjunto de preços. Então deixe-me copiar isso e colá-lo mais uma vez aqui. E mude isso. Então ano mínimo e x dois. E, claro, precisamos mudar isso também aqui. Então, vamos verificar o nosso aqui. E você tem gasolina. Mas em vez de passá-lo para um duplo, vamos passá-lo para um inteiro. Então integer.parseint. Também a mesma coisa aqui, Integer.parseint. E a última coisa que vamos fazer é mudar o índice dois e ano. Agora estamos bem. Nós podemos realmente nos dar, uma vez que o nosso preço aqui são testes intitulado são, têm o mesmo comprimento exato. Então nós não precisamos realmente mudá-lo, no entanto, nós apenas modificá-lo apenas para que possamos entender o que vamos fazer aqui. Agora que temos o nosso mínimo e o índice, podemos simplesmente escrever também como fizemos aqui. Então deixe-me copiar isso mais uma vez e colá-lo. Então o CD com nós podemos dizer realmente a cidade mais antiga que podemos dizer é criada. E, e por, podemos simplesmente remover. Então vamos conseguir que a cidade mais antiga seja criada, então o ano pelo nome e o nome da cidade é, e títulos que recebem. Então aqui precisamos mudar o preço para o ano. E estamos bem. Se eu executar este código mais uma vez, eu vou obter o CD com o preço do sistema operacional. Esta é a primeira declaração impressa recriada aqui. Agora a segunda declaração impressa é a cidade mais antiga é criada em 1985 por simplesmente ler e o nome do CD é livro de imagens. Agora, observe aqui que eles são os mesmos, então algo é forte. Como se
voltássemos aqui, podemos simplesmente notar que usamos o índice do primeiro. No entanto, precisamos do índice dois e executar este código mais uma vez. A cidade mais antiga é criada em 1968 por Otis Redding e o nome da cidade é o cais do debate. Agora, nós temos nossas informações, nós extraímos do nosso catálogo, aquele XML. E se voltarmos ao nosso documento e procurarmos por todos esses CDs aqui, podemos simplesmente simplificar que todas essas informações são precisas e corretas. Então o preço mais baixo é 7,20 e o mais antigo é 1968. E isso é basicamente para este exemplo. Se quisermos modificar alguns destes, podemos simplesmente listar todas as empresas. Então, uma maneira de fazer isso, já
temos ArrayLists. E, neste caso, podemos criar uma nova lista de arrays apenas para o nome da empresa. Então ArrayList, empresa com dois novos ArrayList. E, na verdade, se
especificarmos o tipo aqui, não precisaremos especificá-lo mais uma vez aqui na tag final. Então, podemos simplesmente remover isso e funcionará corretamente. Então agora temos a nossa companhia. Vamos adicionar as informações da empresa dentro deste ArrayList. Então empresa que, que vamos adicionar elemento que obter elementos pelo nome da tag. E o nome da etiqueta é empresa. E, em seguida, esse item em 0 e convertê-los em uma string usando o get TextContent. Agora que temos os nomes das nossas empresas, podemos simplesmente criar um loop for e passar por todos os nomes das empresas. Como dissemos, podemos usar o tamanho da empresa e imprimir a empresa. E deixe-me apenas adicionar aqui empresa i mais 12 pontos e então eu simplesmente imprimir a empresa no índice i. E antes disso podemos simplesmente empresas. E agora, se rodarmos esse código mais uma vez, vamos pegar todas essas empresas. Então agora temos a empresa um,
Columbia, empresa três, RCA,
BMG, CBS, e assim por diante. Então aqui está uma lista de todas as empresas dentro deste catálogo, mas XML. Agora. Então, sempre que temos um documento XML, agora podemos modificá-lo. Podemos pegar a inflamação, extrair o que quisermos, e usá-los como quisermos. E isso é basicamente para este exemplo. Vejo você no próximo vídeo.
38. Exemplo da empresa: Agora vamos olhar para outro exemplo. E neste caso temos um arquivo XML que é empresa. E dentro desta empresa temos alguns empregados. Como você pode ver, temos o primeiro funcionário, temos o FirstName, Sobrenome e o salário. Então temos bruto e líquido dentro do salário. Então temos o segundo empregado, e assim por diante. Temos quatro empregados. Agora vamos criar nossa classe, e vamos nomeá-la companhia. Então esta é a nossa aula. Como de costume, começamos com a criação do nosso método principal, lançando a exceção. Então, Rose exceção. Então podemos começar com a criação do nosso arquivo. Então 55 para um novo arquivo e pobre contaminado. E pelo nome é companhia. Aquele XML. Agora que temos a nossa multa, podemos começar com a criação do nosso documento Builder Factory. Importado DBF igual ao documento, construir a fábrica. E neste caso, o novo incenso, como de costume. Então vamos passar para a criação do nosso construtor de documentos. Então aparafusado db igual a DBF que você documenta filtro. E, finalmente, podemos criar nosso documento importado de o para três WC.com. Como de costume, estimado Document DB, que bloqueia nosso arquivo. Agora que temos nosso documento, podemos começar com a extração de nossos dados. Então a primeira coisa que vamos fazer é como de costume, criar nossa lista de nós e L. Então é claro que precisamos importá-lo. Então, depois de obter nossa lista de
nós, podemos criar nossa importação de nó. Não se esqueça de importá-lo de Ogden PWC dot-com e não de que sun.org e assim por diante. Então é aqui que você tem Bartlett e o elemento importado também ELT. Agora podemos seguir em frente. Então, a primeira coisa que vamos fazer é criar a lista de nós e l. E neste lado,
este documento de lista de nós que obter elementos por tag, nome. E nós vamos conseguir, se voltarmos para a nossa empresa, nós vamos pegar o empregado. E neste caso, temos empregado. E agora dentro desta lista de
nós, temos as informações do funcionário, como FirstName, Sobrenome e salário. Agora vamos seguir em frente. Então nosso loop começará em 0 e terminará com e ainda comprimento. Agora, vamos atribuir o nó dois. No item i, então é claro que vamos verificar se esta instância nó do elemento, este é o caso. Podemos prosseguir com o nosso código. E agora, se este nó é um elemento, podemos simplesmente convertido então elemento e seguido por denotar. Agora, vamos voltar ao documento da
nossa empresa e podemos ver que temos primeiro, século passado. E neste caso, precisamos criar uma lista de arrays para apenas armazenar esses dados dentro de nossos arrays. E neste caso, você pode criá-los aqui. Então lista de matriz, e esta lista é uma string. E neste caso vamos chamá-lo FirstName. E, claro, lista de matriz. E o segundo é o sobrenome. String também sobrenome igual a mu Array List. E definir uma lista de matriz será, temos na verdade dois, como você pode ver aqui, temos um que é um inteiro e o segundo duplo. Então vamos criá-los como inteiro e duplo. Então lista de matriz de inteiros. E neste caso, preciso usar a aula de embrulho aqui, desculpe. E o nome disso é nojento e simplesmente inicializá-lo. E a última lista de array será do tipo double. Neste caso, é o salário líquido e inicializá-lo como de costume. Agora temos nossa lista de arrays, e agora podemos armazenar nossos dados dentro dessas ArrayLists. Agora vamos voltar ao nosso elemento. E dentro deste elemento podemos armazenar os valores. Então primeiro nome, mas adicionar, vamos adicionar o LT, mas getElementsByTagName eo nome do tipo é primeiro nome. E depois de obter este FirstName, vamos obter o primeiro item. Então esse item, sinto muito. Aqui, nós precisamos apenas modificar algo para apenas adicionar os parênteses extras aqui. E depois de terminar A partir disso, podemos simplesmente deixar-me apenas realmente aqui, nós apenas adicionamos algo e não é necessário. Então item em 0 e que obter conteúdo de texto. E agora temos o segundo é o sobrenome. Então, sobrenome, mas adicione. E dentro que obter elementos por tag, nome, sobrenome, nome, esse item. E, claro, fechou esse item em 0 como de costume que obter conteúdo de texto. Agora, depois de terminar com o primeiro e sobrenome, precisamos passar para inteiro e duplo. Temos nojento. E agora para criar o nosso Na verdade para adicionar o nosso elemento na lista de matriz de inteiros, precisamos tê-lo como um inteiro. Então, sempre que
precisarmos, queremos adicionar um inteiro aqui em nosso crescimento. Você pode simplesmente dizer gloss esse anúncio. E a primeira coisa que vamos fazer é usar o método integer.parseint. E dentro deste método, podemos simplesmente usar o elemento plt.plot. E neste caso precisamos obter crescimento e o item em 0 e eu recebo conteúdo de texto. Então, o que fizemos aqui? Nós só temos os elementos por tag name grass, temos o primeiro elemento e convertido em uma string e, em seguida armazená-lo e um inteiro depois de convertê-lo em um inteiro também. Agora a última coisa é o ponto da rede. E como de costume, duplo ponto de análise. E podemos simplesmente usar ELT, mas obter elemento como antes, e que o item em 0 que obter TextContent. Agora, acho que temos, se voltarmos aqui e descobrirmos que temos rede de classe, nome e sobrenome. Agora, temos todos os nossos dados aqui. Podemos trabalhar com eles como quisermos. Então, nosso objetivo aqui é encontrar o empregado com o menor, menor salário e com o salário mais alto. Então precisamos encontrar para os funcionários. E para fazer isso, que criou, depois de terminar isso para loop, vamos criar. Então inteiro máximo ele vai obter, ele vai ter um inteiro que significava valor. E o mínimo levará inteiro esse valor máximo. E estes dois inteiros, Max e significados por responsáveis por encontrar o salário bruto mais alto e mais baixo. Então vamos em frente e começar com o nosso código aqui. Temos inteiro min e max. E nós vamos passar para os elementos de grama na lista de grama. E como você faz isso? Nós simplesmente designamos para entender o tamanho e começar. Então deixe-me apenas realmente criar dois e os índices fora, tão baixo igual a 0 e alto também igual a 0. Agora f, nossa grama que chega em i é menos do que hora mínima. Precisamos mudar nosso mínimo. Então o mínimo será ponto de grama chegar em i e nosso baixo será igual a isso i. E, claro, precisamos verificar o máximo. Então f ponto grama em i é maior do que o máximo. Nós vamos atribuir máximo para ser igual a capim pegar em i. E a mesma coisa será igual a I. Agora, depois de terminar com isso, nós vamos ter o nosso baixo e alto. Podemos simplesmente imprimir depois de terminar de editar isso para loop, podemos imprimir nossos funcionários. Então, para fazer isso simplesmente usaria o método System.out.Print. E vamos imprimir FirstName e First_name.gov em baixa. Então vamos adicionar espaço do que o sobrenome, mas ficar baixo também. E podemos adicionar o empregado com o menor salário bruto. E podemos especificá-lo. E, claro, a cruz, mas gad em baixo. Agora vamos copiar colar este mesmo exatamente alinhado aqui. No entanto, agora precisamos imprimir para a alta Ato Sobrenome I também como o empregado com o maior salário de,
e, claro, imprimir ponto grama obter alta. Agora, se eu rodar este código e vamos ver o que vamos conseguir. Vamos conseguir que Stephen Colbert seja o empregado com o menor salário bruto de 340. Cristiano Ronaldo é o empregado com o maior salário bruto de 300 mil. Agora, se voltarmos aqui, podemos simplesmente notar, já que temos apenas quatro funcionários, você pode simplesmente notar que são 600. Se descermos 400,300 mil, então este é o mais alto e 340 é o mais baixo. E essas informações estão corretas, como você pode ver aqui. Agora, outra coisa a fazer é apenas comparar o salário líquido em vez do salário bruto será exatamente o mesmo. No entanto, estamos agora a lidar com duplas. Então, em vez de criar nossos inteiros ij, o mínimo e máximo, eles serão duplos como duplos e compará-los do que encontrar o baixo e alto como de costume,
em seguida, simplesmente imprimir o primeiro sobrenome. E é claro que ele aqui precisamos mudar de grama para rede dois na verdade, deixe-me apenas fazê-lo rapidamente. Então aqui precisamos ter duplo, duplo Max e então vamos comparar a rede. É claro que aqui, também precisamos comparar o em que e, claro, mudou. E aqui também assim. E finalmente net. E depois de terminar a partir daqui, precisamos simplesmente modificar aqui também. E com o menor salário líquido e o maior salário líquido. Se eu rodar este código mais uma vez, vou dizer que Stephen Colbert é o empregado com o menor salário líquido de 327. E Cristiano Ronaldo é o empregado com o maior salário líquido de 1881000. Então, se eu voltar aqui e me deixar checar mais uma vez. Aqui temos o salário líquido é 378. Temos 440. E podemos ver que este é o mais baixo. E o mais alto é 288 mil. Agora, deixe-me mudar o salário líquido. Apresse-se aqui para ser igual a 44. E neste caso, se eu sublinhar mais uma vez, vamos fazer Richard Saul ser o empregado com o salário líquido mais baixo de 44. E podemos notar que este é agora o salário líquido mais baixo em vez deste 1227. E isso é realmente para este exemplo. Agora, aprendemos os conceitos básicos de como extrair dados de XML usando Java. Agora, sempre que temos um documento XML, podemos aplicar exatamente a mesma coisa que fizemos aqui. E nós vamos obter nossos dados. Podemos armazená-los em ArrayList, podemos armazená-los em um arquivo ou um IRA ou qualquer coisa que quisermos. Então isso é basicamente e vê-lo no próximo vídeo.
39. Json: Agora vamos passar para JSON. E antes de tudo, vamos aprender o que é JSON e como lemos dados desse tipo de arquivo? Então, como podemos ver aqui, temos o menu que documento JSON. E JSON significa JavaScript Object Notation. Então deixe-me ir em frente e tentar descer aqui. Portanto, significa notação de objeto de script Java. E é uma auto-descrição e fácil de entender. Então, como você pode ver aqui, temos Menu e dentro deste menu temos o valor id e pop-up. Dentro pop-up, temos esses valores diferentes para cima e para baixo, e para cima e documento. Então vamos em frente e cavar mais fundo e fazer a sintaxe de JSON. A primeira coisa que vamos fazer é pegar um objeto de cada vez. Então vamos supor que eu peguei isso. Podemos ver que temos o valor aqui ou um tipo, e é seguido por um valor. Então, como podemos ver, temos o nome, e neste caso é o ID. E é em aspas duplas, como podemos ver,
e seguido pela coluna e, em seguida, o valor deste NAPE, então arquivo ID. E então temos também o nome. Neste caso é, ele é chamado de valor e o valor deste como arquivo com capital F. Agora, tudo em chaves é realmente um objeto. Então, sempre que definimos chaves e escrevemos algum código aqui ou algumas linhas, estes são um objeto. Podemos supor que isso é um objeto. Agora, sempre que escrevemos colchetes, isso indica que temos uma matriz. Como podemos ver, isso contém três itens, então este array contém três itens. Então este é o objeto um, objeto dois e o objeto três. Agora vamos seguir em frente e criar nosso programa Java para que possamos extrair esses dados ou informações do nosso arquivo JSON. Então, primeiro de tudo, a
fim de usar um centavo e usar os métodos disponíveis para nós no JSON, temos uma biblioteca ,
entidades, uma biblioteca específica, e externo realmente não construído em Java, então precisamos faça o download. Então vamos em frente e ir para o Google e download.com. E aqui temos que baixar Jason aquele jarro. Vou deixar um link ou um viveu toda a biblioteca e a descrição. Agora temos o nosso JSON. Biblioteca. Então deixe-me voltar ao nosso código. E, claro, precisamos extraí-lo de nossos downloads. Então, depois de ter a nossa biblioteca baixada, você pode ir para o nosso projeto, e neste caso,
este projeto um, clique com o botão direito do mouse caminho cinto e configurar caminho de construção. Aqui temos nossas bibliotecas e podemos ver que não temos nenhum caminho, quaisquer bibliotecas adicionadas. Então eu vou apenas adicionar frascos externos. E deixe-me ir ao desktop. Dentro da área de trabalho temos arquivos jar profundos. Este é JSON, de modo que nós apenas adicionamos aplicar e fechar, e agora nós definimos para que agora possamos usar JSON. Deixe-me apenas criar um novo pacote especificamente para JSON. E neste caso, vamos criar nossa primeira classe e vamos nomeá-lo menu. Então agora temos nosso menu de classe e nosso menu Arquivo, que JSON. Então vamos começar com este arquivo. Vamos extrair alguns dados daqui. A primeira coisa que vamos fazer é, como de costume, criar nosso método principal e, claro, através da exceção. Então, sempre que lançamos uma exceção e tipos, tipo lança exceção, isso significa que
vamos lançar quaisquer exceções que possam ocorrer aqui. E é claro que não nos referimos aos somadores ou cern, só
queremos dizer talvez uma exceção de arquivo ou algo assim. Então arquivo igual ao novo arquivo. E neste caso temos menu que JSON. E, claro, precisamos importá-lo como de costume do Java para o IO. Agora podemos começar com o nosso Jason. Então, a primeira coisa que estamos indo para importar o fluxo de entrada de arquivo. Então fluxo de entrada de arquivo e importado, vamos nomeá-lo T, o. E neste caso, ou talvez eu possa nomeá-lo FIOS como fluxo de entrada de arquivo e criado como inicializador de costume. Então fluxo de entrada, e ele vai tomar o arquivo como um parâmetro. Em seguida, isso será seguido pelo token JSON. E deixa-me escrevê-lo. E depois falamos sobre isso. Então deixe-me importá-lo. E como você pode ver aqui, deixe-me apenas
digitar Tóquio entrar igual ao novo JSON Falconer. E neste caso, deixe-me apenas tomar isso como uma entrada. Corrente. Então é isso que queremos e dentro deste edifício escrever FIS. Então este é o fluxo de entrada definido. E agora que temos o nosso toner Jason, podemos ler dados do interior do estoque. Então deixe-me voltar ao nosso menu, JSON. E ele, como podem ver, deixa-me apagar isto. E nós já dissemos que sempre que temos chaves, Este é um objeto. Sempre que temos colchetes, este é um array. Então aqui podemos ver que este é um objeto e este é um objeto. Como lidamos com isso? Podemos simplesmente criar um objeto JSON. Então objeto JSON, e isso irá nomeá-lo, irá nomeá-lo objeto que será igual a novo objeto JSON, e ele vai tomar toda a URL token como um parâmetro. É assim que podemos extrair dados do nosso arquivo JSON se tivermos um objeto. Agora, vamos começar com isto. Agora temos todo o nosso objeto dentro deste objeto. Agora, depois disso, vejamos o que, o que já temos aqui também. Agora podemos ver que temos outro objeto, e desta vez temos o nome que é menu. Então, como lidamos com isso? Se quisermos extrair esses dados a partir daqui, podemos simplesmente criar outro objeto JSON, vez que também é um objeto. E neste caso, vamos dar um nome. Por exemplo, i. E, claro, isso será igual a objetos. E nós vamos usar,
Desculpe, eu tenho um objeto. E se eu JSON, temos que obter JSON objeto. Então, este método nos levará o objeto e com o menu de nome. Agora, nós também temos, deixe-me voltar e como você pode ver aqui, nós temos o ID, nós temos o valor, e nós temos o pop-up. Então deixe-me voltar aqui e dizer o nome. Esta será a identificação. E, claro, deixe-me apenas criar também objeto adjacente para o valor e o pop-up. Agora temos agora vamos extrair alguns dados. A primeira coisa que vamos extrair, deixe-me voltar ao nosso menu, aquele JSON. E podemos ver claramente que temos o ID e temos o valor que é definido. Agora, se eu quiser extrair o valor deste ID, eu posso simplesmente imprimir id dot, get, string e decay que é PID. Agora, como eu disse antes, eu poderia apenas ter criado este objeto JSON como o e usá-lo. Para extrair os dados. Para que eu possa remover isso. E aqui eu posso escrever e agora, se eu fizer isso, vou pegar PHI. Agora, se eu quiser, vamos voltar ao Menu que JSON. Se eu quiser esse valor, este maiúsculo F cinco, eu posso simplesmente retornar getString. E neste caso eu vou retornar o valor e executar. Vamos pegar um arquivo e um arquivo. Agora, como podemos ver aqui, temos o nosso pop-up e dentro deste pop-up temos um objeto. E dentro deste objeto temos o item de menu que contém uma matriz de objetos. Então, até agora temos este objeto e este item de menu como uma matriz. Então deixe-me voltar aqui e criar o que dissemos. Então precisamos de um objeto JSON e vamos chamá-lo como dissemos. Deixe-me voltar e um deles é pop up e o segundo é, desculpe, deixe-me deletar isso. E o seu Burke. Então, aqui, um deles é provérbio e o outro é item de menu. Então objeto JSON, pop up e Jason por dia. E este é o item do menu. Agora, depois de criá-los, podemos simplesmente pegar este pop-up e Dave, o objeto deste pop-up, como fazemos isso? Podemos simplesmente escrever que precisamos pop-up para ser igual a ponto. Obter objeto JSON. Nós vamos obter o objeto JSON em que temos pop-up. Depois disso, vamos tomar a matriz de item de menu dentro pop-up. Item de menu será igual a colidir com a matriz get JSON. E precisamos do item do menu. E agora terminamos. Temos o nosso item do menu. Podemos criar um loop para começando em 0 e o item de menu que comprimento. Então item de menu desse tamanho. E dentro disso, podemos simplesmente obter o valor do item de menu. Então deixe-me apenas criar um objeto JSON para desvalorização. Eu posso realmente criá-lo lá fora. Então objeto JSON, valor e valor será igual ao item de menu ponto obter objeto JSON. Vamos pegar todos os objetos aqui. Então este é o primeiro, segundo, terceiro objeto. Então, no índice i, então simplesmente impresso. Vamos imprimir o valor para obter força desse valor. Em seguida, é espaço do que valor que getString de desconecte. E agora considerar, então temos desvalorização e on-click. Vamos conseguir os dois valores. E agora se eu executar isso, nós vamos obter arquivo,
arquivo como antes, nova criação,
novo documento para cima e para cima e documento, fechar, fechar documento. Então, como podemos ver aqui, nós apenas extraímos esses valores daqui. E é isso, na verdade, esta é uma idéia geral sobre JSON e como podemos extrair dados do JSON usando Java. Agora, nos próximos dois vídeos, vamos cavar mais fundo e para JSON. E vamos obter exemplos
muito mais complexos e aprender como podemos lidar com cada um deles. E nós vamos ver que eles são os mesmos. No entanto, precisamos compreendê-los e lidar com eles com cuidado. E este é o fim para este vídeo. Vejo você no próximo exemplo.
40. Exemplo do Wordpress: Agora vamos resolver outro exemplo de Jason. Este é o ponto Wordpress JSON. E este exemplo simples, deixe-me ir em frente e criar outra classe em nossa declaração pacote JSON, word press. Como de costume, comece criando nosso método principal, lançando a exceção e, em seguida, começando com nosso arquivo, é
claro, importando-o. Então este é wordpress dot JSON. Agora que criou nosso arquivo, podemos criar nosso token JSON. E é claro que vamos começar com o nosso arquivo. Fluxo de entrada. Pode metafile nova tela com o arquivo como um parâmetro. Depois disso, vamos criar o token JSON são importantes. Então isso é tudo o que JSON para a biblioteca que criamos anteriormente. E, claro, vamos citar um documentário que será igual ao novo token de Jason e com FIOS como parâmetro. Agora vamos voltar para o nosso ponto WordPress JSON e ver o que temos aqui. Então a primeira coisa que notamos é WordPress dot JSON começa com uma matriz. Como podemos ver aqui, temos os colchetes. E para lidar com isso, vamos criar um anúncio por ano. Então, se eu voltar para o nosso menu.html e ver. E então vamos notar que sempre que criamos o objeto JSON, este é um objeto desde que ele começou com as chaves indicando que este é um objeto. No entanto, aqui temos os colchetes. Precisamos criar uma matriz. E para criar isso, podemos simplesmente criar este JSON. E vamos dar um nome. Em um, ele será igual a novo JSON em um URL token como um parâmetro. Então, como você pode notar, JSON ou lidar com JSON em Java é bastante simples. Não leva muito tempo, e é simples. Então ele recriou nossa matriz. Agora vamos criar alguns objetos. Então eu acabei de nomeá-los de objeto um e objeto dois. Então objeto, objeto um, objeto dois. Agora, é claro, deixe-me voltar e vamos ver, aqui temos. Por exemplo, vamos apenas imprimir o ID e a data. E vamos ver o que temos aqui? Nós também temos as categorias e as tags. Então vamos imprimir. Nós dissemos que vamos imprimir ID, data e categorias e etiquetas. Como você pode notar aqui, categorias e tags são arrays e objetos ID e data. Então aqui temos o objeto um, o objeto dois, e aqui temos o objeto JSON. Nós não importamos. E temos um caso como dissemos. Então nós temos as categorias e nós também temos as tags, eu acho. Então. Sim, basicamente categorias e etiquetas. Agora, vamos em frente e criar o nosso objeto de transferência de objeto um será igual a um ponto get objeto JSON. Temos este método mestre. E como podemos ver, precisamos adicionar um índice aqui. Então, se eu adicionar o índice 0, isso nos dará o primeiro objeto. E dentro desta matriz, como podemos ver, este é o primeiro objeto. Isso é tudo isso é o primeiro objeto. Então aqui temos, estamos abrindo as chaves e ele vai fechá-la. E como podemos ver, este é apenas um objeto, então todos os dados aqui estão dentro deste único objeto. Agora vamos voltar. E se eu imprimir, deixe-me imprimir a identidade. Se eu quiser o ID, você pode simplesmente usar. Deixe-me apenas indicar que esta é a idéia e usar o objeto um. Como dissemos, este é o objeto um ponto. Podemos acabar. E usando este método, vamos obter um inteiro. E nós inserimos o id como um parâmetro. E agora se eu executar isso, eu vou ter a idéia, e este é 157538. E essa é exatamente a idéia. Agora, se eu quiser extrair também a data, eu posso simplesmente escrever que a data é. E usar objetos ainda não eram. Deixe-me voltar. Então esta é uma string, modo que get string e o parâmetro é uma string de data. Agora vamos correr. Nós vamos obter a identificação é e a data é 2017, e claro a hora. Então isso é basicamente para extrair objetos de uma matriz. E aqui estamos usando os métodos getInt e getString desde que sabemos o que
vamos extrair a respeito para extrair o ID e data. E este é um método útil neste caso. Agora vamos rolar para baixo aqui temos nossas categorias e tags. Então vamos criar nossa categoria primeiro. Então a primeira coisa que vamos fazer é deixar-me. Basta ir aqui e categoria será igual a, como dissemos, objeto um ponto obter matriz JSON. Neste caso, vamos conseguir o LDA e o que quer que tenhamos as categorias. E agora criamos o nosso dia. Se queremos criar as tags também tags objeto um, dot get JSON adiciona um e b. Temos tags. Agora, como sabemos que só temos um elemento dentro deste ID, eu posso simplesmente usar, eu posso simplesmente imprimi-lo na verdade, então categorias. E eu posso usar o método dot get e nós vamos obter o inteiro em 0. Depois disso, vamos imprimir a dança. E neste caso, sabemos que temos mais de uma etiqueta. Então vamos criar um loop for começando em 0 e terminando o comprimento. Desculpe, marcam esse tamanho. E isso é basicamente eu posso imprimi-lo agora. Então tags que terminam no espaço i. Agora, se eu executar isso, eu vou obter a identificação é, a data é, e categorias que temos 6132 e, em seguida, seguido pelas etiquetas, nós temos dois cães, 17, 986 a 98. E esta é uma ideia geral sobre este exemplo de
voltarmos aqui e vermos o que nos resta. Então, por exemplo, nós temos, então estes são os mesmos de antes. Isso é modificado ou você pode usá-lo como ID ou uma data. No entanto, vamos usar isso. Aqui temos o Guia e o guia interior que eu tenho dobrado. Então sabemos que sempre que usamos chaves, isso indica que temos um objeto dentro. Então temos um objeto que criou um objeto JSON, vez que temos um outro objeto neste caso que nós apenas nomeá-lo, renderizado. E renderizado será igual ao objeto um ponto obter objeto JSON. E neste caso, o objeto adjacente é o guia. E deixe-me tentar. Guia. E depois disso, eu posso simplesmente usar um impresso. Então renderizado igual a renderizado que obter, deixe-me voltar aqui e renderizado. Podemos usar a cadeia GetString e a chave neste caso é renderizado. E agora se eu executar isso e me deixar primeiro. Então aqui nós fomos renderizados e o valor de renderizado. Então é basicamente isso. E é assim que podemos usar JSON e extrair dados do Jason e usá-los e nosso programa Java. Agora, no próximo vídeo, vamos dar uma olhada em outro exemplo. E é um pouco mais complicado, mas a mesma ideia ou os mesmos conceitos ainda se aplicam a todos os documentos adjacentes. Então, vejo você então.
41. Exemplo de glossário: Olá e bem-vindo de volta para você exemplo Jason. E neste caso temos glossário que JSON. E este é o nosso ficheiro. E podemos ver que este exemplo é um pouco mais complicado do que os outros, já que temos alguns objetos que estão aninhados ou dentro de outros objetos, como podemos ver aqui, temos a lista. Dentro da lista de vidro, temos um objeto, e este objeto está dentro da última div, e div de vidro está dentro do glossário e assim por diante. Então agora vamos criar nosso arquivo JSON ou Java. E esta é a nossa turma. Vamos dar o nome de glossário. E vamos começar como de costume feito e lança a exceção. Em seguida, comece com o nosso phi, phi igual a o e glossário que JSON. E agora podemos criar nosso token JSON. E isso é igual a nu Jason. E eu sinto muito. O que precisamos para criar o nosso fluxo de entrada de arquivo. Totalmente esquecida. E fluxo de entrada
de arquivo de entrada. E depois disso, damos essa palestra do Jason, essa FIS como um parâmetro. E depois disso podemos começar com o nosso código JSON. Então a primeira coisa que podemos notar aqui é realmente criar o token JSON ou é que n, nosso glossário, temos um objeto. Então começamos com a criação do objeto. A primeira coisa é objeto JSon. E neste caso, vamos nomeá-lo o objeto igual ao novo objeto JSON. E vai levar o documento. Depois disso. Podemos criar nossos outros objetos para que possamos ver que temos o objeto glossário. Em seguida, temos o objeto de cluster, objeto de lista de
vidro mais N3 e brilho surdo. Então vamos criá-los aqui, todos eles de uma vez. Então temos um glossário. Em seguida, a perda, seguida pelo vidro, depois o sem lei e árvore, e finalmente o copo, surdo. E então estes são os nossos objetos. E nosso objetivo é imprimir alguns dos elementos aqui de alguns dos dados. E nós precisamos imprimir isso em um. Então deixe-me apenas criar este array e JSON. Um dia. E mais c também. Então isso é basicamente agora que podemos começar com a extração de dados. Então a primeira coisa que vamos extrair é o título. Como podemos ver aqui temos o título. Então isso é depois de criar o objeto. A primeira coisa que vamos fazer é tomar glossário para ser igual à primeira coisa, o objeto e USD para obter objeto JSON. E temos que conseguir um glossário. E depois disso, depois de obter este fim de semana do glossário da mercearia, simplesmente imprima o título, o título como e o glossário. Claro que sim. Glossário. E obter, nós vamos pegar a string com o título da chave. E se eu comandar isto, vamos verificar. Este é o título como exemplo de glossário. Se voltarmos aqui, o título é realmente exemplo x, então isso está correto. Agora, depois de criar este objeto, podemos notar que gloss live é outro objeto. Então podemos usar o glossário e extrair os objetos do glossário. Então temos mais f. Neste caso, será igual ao ponto do Glossário. Obter objeto JSON. E neste caso nós temos, deixe-me voltar e tentar corretamente. Temos morte de vidro. E isso é realmente div de vidro. Agora temos nosso objeto mais ao vivo. Se, por exemplo, por um extra, extraia o título. Neste caso, eu posso simplesmente imprimir o segundo título como e o getString e título. Feito. Vamos conseguir o segundo título é S, e este é o caso aqui. Agora também podemos notar que temos outro objeto aqui que é sem perdas. Então vamos fazer exatamente a mesma coisa aqui. Então, mais L2 será igual ao ponto obter objeto JSON. E nós temos mais. E deixe-me imprimir algo da lista de vidro. Na verdade, não temos nada lá dentro. Deixa-me só verificar. Aqui. Precisamos criar outro objeto que seja para a entrada de brilho. E neste caso, vidro. E três será igual a lista de vidro que obter JSON objeto mais N3. E depois disso, vamos voltar aqui. Podemos ver que dentro do vidro e dois, temos ID e em termos de vidro, vamos imprimi-los apenas para ter certeza de que estamos no caminho certo. Então temos que imprimir. O ID e usar LAS e ponto de árvore get. E vamos voltar aqui para verificar se o ID é uma força de pegar corda. E esta é a ideia. Agora corra. Vamos conseguir a identificação como G, M, L. E isso está correto. E a outra coisa é, deixe-me usá-lo aqui. E nós precisamos extrair o bluster. Então vire e use vidro e mais uma vez. Mas getString como de costume, vez que esta é uma string. E no ano passado, vamos obter GlusterFS, linguagem de marcação generalizada
padrão. E isso também está correto. Agora chegamos a um ponto em que estamos extraindo dados realmente desta fase. Agora, podemos ver que a morte por explosão é outro objeto. Então já temos aqui a morte de vidro como um objeto. E podemos simplesmente fazer exatamente a mesma coisa que antes. Então vidro, o será igual a mais e tratar que obter objeto JSON e, neste caso, vidro. E vamos apenas extrair algo de você. Deixe-me ver o que está errado. E alterar o tipo de, Sinto muito, aqui precisamos criar um objeto, obter objeto JSON. E agora estamos bem. Dentro de um nervo de vidro. Temos o pará. Então deixe-me apenas imprimir como e mais o GetString. E neste caso, vamos simplesmente imprimir o que temos a Empire. Execute este código. Nós vamos obter uma linguagem meta marcação usada para criar linguagens de marcação, como notebook. E isso também está correto. A última coisa que vamos fazer é usar o array que criamos anteriormente e imprimir g, m, l XML aqui. Então, já temos isso. Então isso é brilhante também, é uma atualização e deixe-me usá-lo aqui. Então vidro C também, e neste caso, será igual a um mais o get JSON em a. E neste caso, isso é mais C também. E vamos criar um loop for para passar por todos os elementos dentro da matriz, começando com i igual a 0 e terminando com vidro. Também esse comprimento. E, claro, podemos imprimir mais C também. E, e nós vamos pegar a string no índice i. E deixe-me imprimir aqui só para saber o que nos foi embora. E então este é um plus c. Também em a. E, claro, deixe-me ajustar isso e algum espaço em branco executar mais uma vez. Nós vamos ficar brilhante também em um GM L e XML. E isso é basicamente, isso é considerado como um arquivo JSON complicado para extrair dados e Java. E é a mesma ideia de antes. Só precisamos seguir a estrada recriada. Então, sempre que vemos chaves, criamos um objeto. Sempre que vemos um colchetes, criamos um em um e assim por diante. Então agora nós extraímos alguns dos dados deste arquivo, e isso é basicamente para este vídeo. No próximo vídeo vamos fazer mais um exemplo. Então, vejo você então.
42. Exemplo de questionário: Agora vamos passar para o último exemplo do Jason. E neste caso, temos um teste que o arquivo JSON. Primeiro de tudo, deixe-me apenas criar a nossa classe. Então esta é a nossa classe Java, como de costume. E nós temos teste, desculpe, ele apenas refatorou o nome da chave e terminar. E, como de costume, crie um método principal, a exceção. E, em seguida, crie o arquivo. Então, se phi igual a comprar e quem é o adjacente,
em seguida, fluxo de entrada de arquivo VHD,
fluxo e, em seguida, criar o token JSON. E neste caso, vamos nomear um token igual ao novo token JSON a e phi S como parâmetro. Agora, se você voltar aqui, não
podemos dizer que isso é um objeto. Então, a primeira coisa que vamos fazer é criar o objeto para objeto JSON. Objeto igual ao novo objeto JSON. Desculpe, aqui podemos simplesmente usar o centro de desintoxicação aqui. E estamos bem. Então agora temos o nosso objecto. Este é o nosso principal objecto. E se voltarmos mais uma vez, podem ver que temos isto. Este é o primeiro objeto ou o primeiro elemento dentro do objeto, e este é o segundo. Então, como lidas com isso? Podemos simplesmente criar um objeto de teste. E dentro deste objeto quiz, vamos tirar do objeto principal para obter objeto JSON e precisamos do questionário. Depois, temos também, como dissemos, a exportação. E, claro, dentro da busca, temos a pergunta um e a matemática. Então, dentro do teste, temos estragos e matemática. E neste caso temos a pergunta um e esporte e pergunta um e pergunta dois, m. Então temos estimulado e q um, q dois. E, claro, agora que temos nossos objetos JSON que podemos começar com é igual ao objeto get JSON. Vamos pegar o objeto JSON com esporte. E depois disso, podemos pegar, então agora estamos aqui e o esporte. E dentro do esporte temos Q1, que também é um objeto. Então Q1 será igual para detectar o objeto JSON get e Q1. Agora estamos dentro Q1, Temos uma pergunta e opções e seguido pela resposta. Então deixe-me apenas mergulhar ou imprimir a pergunta. Então, como dissemos pergunta como d primeiro. Então, podemos simplesmente escrever a pergunta como. E então podemos escrever para um Q1 enorme que se levantam e questionam. Mas agora, se eu fizer isso, vou fazer a pergunta. Ou seja, a questão é qual é o nome correto da equipe na NBA. Agora, depois disso, eu posso simplesmente também criar um viciado uma vez que essas opções dentro desta matriz. Então Jason, e deixe-me nomear opções iguais a Q1. Você tem matriz JSON. E nós temos opções. Depois disso, podemos criar o nosso loop para começando no índice i igual a 0 e terminando opções que comprimento. Agora podemos simplesmente imprimir todas as opções. Então temos a opção i mais um e seguido pela opção em si. Então, mais opção que obter string e no índice por executar isso apenas para verificar. Nós vamos conseguir, porque em S, qual deles é o nome correto dele na NBA, nós vamos ter opções padrão depois disso. Agora podemos imprimir a resposta. Neste caso, a resposta será simplesmente resposta como e seguida pela própria resposta. Então Q1, que é bebido. Locutor. E agora, se eu rodar este código mais uma vez, vamos ter a resposta como foguete Huston. Agora, depois disso, nós também temos a pergunta um e a pergunta dois, n, a matemática. Então vamos em frente e criar nosso objeto matemático. Massa será igual a, como dissemos, foi o objeto get JSON. E, neste caso, temos matemática. E depois disso, podemos voltar à matemática. Podemos ver que dentro da matemática temos dois objetos, que é Q1 e Q2. Então, podemos simplesmente criar Q1 será igual a um ponto matemático, obter objeto JSON como Q1. E, claro, q para ser igual à mesma coisa adjacente no Q2. Depois disso, podemos trabalhar com cada pergunta de cada vez. Então, a primeira coisa que vamos imprimir como, a primeira pergunta como e, em seguida, seguido pelo Q1 que obter, desculpe obter string. E nós vamos ter a pergunta em si. Depois disso, vamos armazenar e adicionar muitas opções. Então opções, vamos ser, Sinto muito, aqui estamos indo para escrever Opções Q1 ponto obter matriz JSON em Opções. E depois de criar isso em um, podemos simplesmente criar o nosso loop for como antes, começando em 0 e adicionar opções que comprimento do que imprimir cada opção. Então opções que GetString que o índice i que vamos imprimir a resposta. Então a resposta como e, claro, seguido por P1 ponto getString incerto. Então agora o fogo e descartar vai obter o seguinte. Então a pergunta é, qual é o nome correto dele na NBA? Esta é a primeira parte. Segunda parte a pergunta como cinco mais sete igual, temos 10111213 e a resposta é 12. E neste caso, ainda
temos a pergunta também e matemática. Por isso, posso simplesmente escrever a segunda pergunta. E para ser Q2 essa pergunta GetString. E neste caso, depois de escrever a pergunta, também
podemos usar a mesma opção. E será igual a Q2, a obter JSON, adicionar um. e, claro, opções que você precisa criar antes loop como antes. E esses mesmos limites. Opções com esse comprimento. Em seguida, imprima todas as opções que é bebido. E depois disso, podemos escrever a resposta ou imprimir a resposta. Então a resposta é e
imprimir q2 ponto get resposta. Depois disso. Deixe-me rodar este código mais uma vez. Então isto é para o primeiro teste. E depois temos a matemática. A primeira pergunta é cinco mais sete. Então a resposta é 12. A segunda pergunta é 12 menos oito, a resposta é quatro. Então, só para deixá-los claros, podemos simplesmente dividir isso. Depois de terminar a partir deste, podemos simplesmente imprimir algum igual. E, claro, podemos pular uma fila aqui. E depois disso. E depois da primeira pergunta, também
podemos escalar corrida alinhada. Nós vamos conseguir isso. Então esta é a primeira pergunta. Então a pergunta é qual deles? Como de costume? E depois temos as matemáticas e neste caso temos duas perguntas. Portanto, esta é a primeira pergunta e seguida da segunda pergunta, como podemos ver aqui. Então isso é basicamente para JSON. Aprendemos como podemos extrair dados e como usá-los em nosso código Java. Escrito sempre disse esses dados e adicionar dias a menos ou qualquer coisa que queremos. Se, por exemplo, nós apenas temos eles como uma string e imprimi-los diretamente. No entanto, poderíamos ter apenas então isso e armazená-lo em uma string, em
seguida, fazer o que quisermos com ele. Podemos imprimi-lo e podemos modificá-lo. Ou podemos apenas obter alguns inteiros, adicioná-los juntos e obter a média de algo, por exemplo. E este é este arquivo ou documento JSON, funciona exatamente como qualquer outro arquivo. Podemos fazer o que quisermos com os dados uma vez que extraímos e maneira correta. E isso é basicamente para JSON. Com isso dito, este é o fim desta flor. Vejo-te no próximo.
43. Projeto: Portanto, nosso projeto é criar uma conta para qualquer aluno ou instrutor. Este é o nosso método principal e permite que você veja e você precisa criar o aluno de classe conta e instrutor como filhos desta conta de classe pai. Agora, vamos em frente e ver o que esta turma faz. Então, se formos em frente e executarmos o código e conseguirmos estudante ou instrutor. Então, é claro que somos estudantes. E pedir-nos que digamos o nosso primeiro e último nome como o computador principal. E G. E eu deveria entrar nos meus cursos. Por exemplo, digamos que estou levando CoA para um, inglês 101 e física. Para ir. Agora, minha conta foi criada, tinha sindicatos estudantes, minha identificação é um dos principais cursos de engenharia de computação. E pedir-nos para tentarmos de novo. Tente de novo. Tipo sim. Vamos supor que somos instruídos agora. Primeiro e último nome. Então Alex, o departamento, vamos ver. Então, os cursos que estou ensinando, digamos dois. E assim esta conta também é criado Alexei instrutor, departamento de finanças cursos ensinando estes e sem uma idéia porque o instrutor não tem 90. Agora, se eu pressionar Enter por engano, eu vou obter entrada inválida. Se eu quiser tentar novamente, por exemplo, tente novamente. Em minúsculas. Suponha que um aluno primeiro e último. Por exemplo, um major. Suponha que engenharia elétrica e cursos para um ELE D03. E este relato também é criado e a idéia é agora, já que estamos para os alunos agora, deontologia. E, por último, se, por exemplo, escrevermos por engano, terá entrada inválida para tentar novamente mais uma vez. Então, se não quisermos tentar novamente, basta digitar não. E este é o fim do programa. Agora, seu aluno e instrutor. Em primeiro lugar, começamos com o estudante. Temos uma aula e temos alguns métodos aqui. Primeiro de tudo, você precisa criar um construtor usando um objeto Student. E então precisamos definir o curso principal e definir cursos e classe de instrutor. Temos o construtor para tomar apenas dois parâmetros. Aqui, temos três parâmetros, temos o ID e temos dois métodos, definir cursos e definir departamento. E também temos mais se esta é uma entrada inválida e enquanto inserimos algo diferente de sim ou não, continuamos pedindo ao programa e continuamos pedindo ao usuário para tentar novamente. Então este é o fim para o projeto. E eu espero que você goste e veja você no próximo vídeo.
44. Recapitulação: Então este é o fim da aula. Em primeiro lugar, falamos sobre herança e polimorfismo. Em seguida, passamos para recursão e alguns, resolvemos alguns problemas neste tópico. Depois falamos sobre ordenar e procurar algoritmos. E, claro, no final, resolvemos alguns problemas em todos os tópicos. E temos o nosso projecto. Então este é o fim para esta aula. Na próxima classe, vamos falar sobre XML e JSON análise. Aprendemos como analisar JSON e XML usando Java. E então falamos sobre pilhas e filas
e as usamos em nossa lista de St. Louis e duplamente vinculada. E, finalmente, vamos falar sobre coleções classe e como usar, fazer usá-lo em Java. Espero que esta aula tenha sido benéfica. E te vejo na próxima.