Transcripciones
1. Introducción: La codificación puede ser muy desafiante y sin embargo extremadamente agradable Al mismo tiempo. Hola a todos. Soy unidades Hadi y esto es Programación para Todos. Ahora bien, si no sabes nada de programación, creo que deberías empezar con las dos clases anteriores. Y el primero vendimos Java y Eclipse y aprendimos sobre algunos conceptos básicos como tipos de datos, toma de decisiones, bucles, y mucho más, pero todo de manera general. Y en la segunda clase con un más profundo a estos conceptos desde la creación de clases y objetos, hacer usando matrices y ArrayLists. Ahora, en esta clase, exploraremos algunos conceptos antiguos y nuevos. Algunas de ellas ya se mencionan en la primera clase que aquí llegamos al fondo de ellas. Con eso dicho, puedes empezar y espero que lo disfrutes.
2. Material: Como de costumbre, comenzaremos con nuestro material. Entonces, ¿qué vamos a cubrir? En primer lugar, hablaremos de herencia, y luego introduciremos el polimorfismo y cómo usarlo vía herencia. Y luego introduciremos un nuevo concepto en programación, recursión y cómo usarlo. Después de eso se moverá a algoritmos de clasificación. Entonces si lo tuviéramos, si tenemos una matriz o una lista de matriz de enteros, cadenas, caracteres, aprenderemos a resolverlos. Y luego hablaremos de algoritmos de búsqueda. Entonces si tenemos un entero específico, por ejemplo, cómo encontrarlo en una matriz específica. Y por último, hablaremos de la clase Big Integer. Después de eso resolverá algunos problemas sobre cada tema como de costumbre. Y por último, tenemos nuestro proyecto. Entonces esto es todo. Y empecemos.
3. Herencia: En primer lugar, comenzamos con la herencia, técnica
fundamental para organizar y crear clases. Se trata de una idea simple pero poderosa que implementa es la forma en que diseñamos software orientado a objetos. Se puede decir que una clase es a un objeto lo que es un plano para albergar. Muchas casas se pueden crear a partir del mismo plano. Son esencialmente la misma casa en diferentes lugares con diferentes personas viviendo en ellos. Ahora, supongamos que quieres albergar eso es similar a otro, pero con algunas características diferentes o adicionales. Se quiere empezar con el mismo plano básico, pero modificarlo para que se adapte a necesidades nuevas, ligeramente diferentes. Muchos desarrollos habitacionales están creando de esta manera. Las casas en el desarrollo Tienen el mismo diseño de núcleo, pero tienen características únicas. Por ejemplo, podrían ser todas
casas de dos niveles con la misma configuración básica de novio, pero algunas tienen chimenea o sótano completo, mientras que otras no. Ahora, vía herencia, la nueva clase
contiene automáticamente las variables y métodos en la clase original, y luego dejan la clase según sea necesario. El programador puede agregar nuevas variables y métodos a la clase derivada o modificar las heredadas. la clase original que se utiliza para derivar una nueva se le llama la clase de banda, superclase o clase base. Entonces aquí está el padre de Pictionary y el vaso. A la clase derivada se le llama clase secundaria o subclase. Y Java utiliza la palabra reservada se extiende para indicar que la nueva clase se está derivando de una clase existente. Ahora bien, el proceso de herencia debe establecer una es una relación entre dos clases. Entonces tenemos una es una relación entre libro y diccionario. Es decir, la clase hijo debe ser una versión más específica de la clase padre. Por ejemplo, diccionario es un libro, pero no todos los libros son diccionarios. Ahora bien, si tal afirmación no tiene sentido, entonces esta relación probablemente no sea un uso apropiado de la herencia. Por lo que ahora vamos a demostrar el uso de un método heredado. Por ejemplo, tenemos palabras, tenemos aquí nuestro método principal. Y diccionario tendrá tres métodos. Emisión informática, definir definiciones, obtener definiciones, y un entero variable. Y por último, nuestra clase de padres, el libro. Tenemos una variable n y dos métodos establecer páginas y obtener melocotones. Sigamos adelante y creemos nuestras tres clases. Contamos con Diccionario Cook y V8. Y por último, palabra. Gafas. Por lo que ahora empecemos con el libro. Por lo que esta es la clase padre de clase derivada para usarla para demostrar la herencia. Entonces tenemos vegetales y enteros, digamos que está protegido y luego lo explicaremos más adelante. Y ustedes páginas igual a 1500 páginas. Y tenemos dos métodos. En primer lugar, set page, que es buscapersonas, le dan un valor de entero como parámetro, num, y que las páginas iguales a este valor. Por lo que ahora en lugar las playas y sin embargo las playas, para devolver el valor de las páginas. Nos limitamos a devolver páginas. Ahora bien, ¿qué es el protegido modificado? Como hemos visto, los modificadores de visibilidad se utilizan para controlar el acceso a los miembros de una clase. Este efecto se extiende también al proceso de herencia. Por lo que los métodos y variables privados de la clase padre no pueden ser referenciados en la clase secundaria o a través de un objeto de la clase secundaria. Y si declaramos una variable con visibilidad
pública para eso para que la clase derivada pueda referirla. Violamos el principio de encapsulación. Por lo tanto, Java proporciona un tercer modificadores de visibilidad protegidos. Por lo que estamos usando protegido. Podemos tener acceso a esta variable y a nuestra clase infantil, diccionario. Ahora bien, es bueno al diccionario. Y aquí tenemos nuestra clase de diccionario. Entonces esta clase, diccionario, que es un libro, se derivan de la clase de libro. Entonces vamos a guardar este diccionario de clase. Tenemos tres métodos y una variable. Usemos privado. Modificar esta definición a la igual a 2005500 por ejemplo. Pero tenemos 52 mil 500 definiciones. Ahora, vamos a crear nuestro primer método para computar el problema de JHU. Ahora, como dijimos, podemos usar y el libro, porque los dijimos como protegidos. Y computar las ratios, simplemente devolvemos unas definiciones W divididas por el tema. Lo siento, sobre cuántas páginas, edades y tema extendimos del trabajo. Y ahora tenemos ambos método de descanso. Ahora, método es definir definiciones. Entonces como de costumbre, naciones con entumecido. Y dijimos que los clínicos sean iguales a nueve. Y por último, tenemos las definiciones get para devolver cuántas definiciones hay una definición def integer sin y simplemente devolver definiciones. Entonces ahora estos son nuestros métodos y sigamos adelante y usarlos en nuestra clase mundial. Por lo que salió de clase. Entonces este es nuestro método principal y nuestro diccionario de objetos en W. emitido Ahora vamos a trabajar con él. Entonces tenemos algún método. Imprimimos el número de páginas. Por lo que número de páginas. Y vas a usar las playas de get. Todavía tenemos que terminar de saltar páginas. Y si seguimos adelante y ejecutamos este código, obtén número de páginas, ciento quinientas. Y también imprimamos el número de definiciones diferentes. Diría definiciones y definiciones. Por lo que tenemos 52 mil 500 definiciones. Y por último, vamos a calcularlos simplemente por definiciones. Entonces no cuántas definiciones hay en la página y usar W.com e imprimirlo. Obtenemos definiciones. Treinta y cinco definición. Ahora, recuerda también hemos establecido Pages y set definition. Entonces, por ejemplo, si queremos cambiar las páginas, simplemente usa W dot set. H es por ejemplo, diez y naciones por la calidad. Y si imprimimos las Definiciones, página una vez más, otro número que es igual a cuatro. Entonces esto es todo para este video. Nos vemos en el siguiente.
4. Super referencia: Ahora también tenemos una referencia con la que debemos estar familiarizados. Esto, la super referencia. Por lo que la palabra reservada Super se puede usar en una clase para referirse a su clase padre. Por lo que podemos tener acceso al miembro de un padre usando la super referencia. Ahora, la palabra super se refiere depende de la clase en la que se utilice. Para. Ahora, vamos a demostrar el uso de referencia superior se quedará. Con estos ejemplos. Tenemos nuestras rutas de clase mundial, tenemos nuestro método principal, y tenemos el diccionario, y extendimos libro. Y por último tenemos nuestra clase. Ahora, supongamos que tenemos en nuestro libro un constructor. Entonces eso puso aquí a un constructor, diciendo que el sector público tiene el mismo nombre que el vidrio. Y vamos a darle un parámetro de enteros, que es número de puentes. Y dentro de este constructor, restablece las páginas para que sean iguales a las playas dadas por el constructor. Y ahora este es nuestro constructor en clase de libro. Ahora vamos a crear otro constructor en clase de diccionario. Por lo que simplemente creamos diccionario outlet y le daremos el valor dos páginas y definiciones. Vamos a cambiar esto por el Así vamos primero de todas las definiciones iguales a definición. Y así ahora puedo invocar el super, el constructor del padre usando la super referencia. Está bien, super y dale el valor de los religiosos. Y ahora usamos el super. Por lo que el constructor del Diccionario toma dos valores enteros como parámetros. Tenemos páginas y definiciones que representan un número de páginas y una serie de definiciones en el libro. Entonces debido a que la clase de libro ya tiene un constructor que realiza el trabajo para configurar la ruta del diccionario que se heredaron. Confiamos en el constructor de deck para hacer ese trabajo. Entonces en lugar de decir que las páginas iguales a la, esta base, simplemente nos basamos en este constructor de la clase, diciendo super. Por lo que irá al constructor en clase de libro y dichas páginas para ser iguales a estas páginas. Ahora, un constructor cargado es responsable de llamar al constructor de su padre. Generalmente, la primera línea de constructor debe usar la llamada de super referencia al constructor del par. Y si no existe tal código, Java hará automáticamente una llamada a super Al principio del constructor. Por lo que esta regla asegura que aparentemente inicializa sus variables antes de que el constructor de clase secundaria comience a ejecutarse. El uso de la super referencia para invocar
constructor avanzado se puede hacer solo el constructor hijo. Y si se incluye, debe ser la primera línea del constructor. Por lo que la super referencia también se puede usar para hacer referencia a otras variables y métodos definidos en la clase padre. Y utilizamos estos datos de técnica. Pasando a la herencia múltiple, el enfoque de
Java para la herencia se llama herencia única. Este término significa que la clase derivada puede tener sólo un padre. Algunos lenguajes orientados a objetos permiten que una clase secundaria tenga múltiples bandas. Este enfoque se denomina herencia múltiple y ocasionalmente es útil para describir objetos que se encuentran entre dos categorías de clases. Por ejemplo, supongamos que teníamos una clase y el camión de clase. Y queríamos crear una nueva clase llamada camioneta. Una camioneta es algo como un auto y algo como una camioneta. Con herencia única, debemos decidir si se trata de un mejor, si es mejor derivar el nuevo chico del aula en camión con herencia múltiple, se puede derivar de ambos, como se muestra en esta figura. herencia múltiple funciona bien en algunas situaciones, pero viene con un precio cuando, tanto camión como automóvil tienen métodos con el mismo nombre. ¿Qué método? Camioneta heredar? La respuesta a esta pregunta es compleja, y depende de las reglas del lenguaje que soporta la herencia múltiple. Los diseñadores del lenguaje Java
decidieron explícitamente no apoyar la herencia múltiple. En cambio, podemos confiar en la herencia y las interfaces para proporcionar las mejores características de la herencia múltiple sin la complejidad añadida. Aunque una clase Java se puede derivar de una sola clase padre, puede implementar múltiples interfaces. Por lo tanto, podemos interactuar con una clase en particular las formas específicas con la herencia y las interfaces, al tiempo que heredamos la información básica de una clase padre y utilizamos interfaces. Y hablaremos de interfaces más adelante. Entonces esto es todo para la herencia super y múltiple. Y el siguiente video, aprenderemos cómo una clase infantil puede anular la definición de padres de un método heredado.
5. Métodos.: Pasando a los métodos de anulación. Cuando una clase secundaria define un método con el mismo nombre y firma que un método en la clase padre, decimos que la virgen del niño anula la versión del padre a favor de la suya propia. La necesidad de anular ocurre con frecuencia en situaciones de herencia. Entonces sigamos adelante y demostremos el uso de un método anulado. Crea un nuevo paquete, nombra de nuevo. ¿ Verdad? Y, y este paquete creará tres clases. El primero lo nombraremos mensaje. El segundo será en dos ocasiones. Y por último, crearemos una clase llamada pensamiento. Entonces tenemos tres clases. Y el mensaje. Aquí tenemos nuestro método principal y lo trabajaremos más adelante. Pero por ahora, conectaremos vicio y pensamiento. Por lo que en el tercero está la clase dependiente y la clase de consejo es el niño extender. Y vamos a crear el mismo método. El mismo método y las dos clases. Por lo que en pensamiento, crearía un mensaje de voz pública sin parámetro, simplemente imprimir. Este es el mensaje del padre. Y la clase de asesoría tendría el mismo método. Mensaje público, público. Sin parámetro, simplemente imprime. Este es un mensaje de la clase. Y usaremos el super, super.mensaje para invocar explícitamente a los padres vírgenes. Ahora, sigamos adelante y usemos tienes aquí un error indefinido para el tiempo. Necesitas guardar esto y todo correctamente. Y ahora vayamos a nuestro mensaje. Usemos dos objetos. Uno para consejo, tienes consejo, un nuevo consejo, y lo mismo para el apellido y lo nuevo. Ahora, usaremos el mismo método en las dos más. Entonces decimos a.me y el mensaje que es cambiarlos, usa primero que nada, esa clave y luego imprime una línea. Entonces vamos a ver qué va a pasar. Por lo que imprimimos que este es un mensaje de la clase padre y luego alineados. Entonces esta es nuestra salida de D, ese mensaje. Y entonces esta es la salida de un, ese mensaje. En un mensaje recibirá, este es un mensaje de la clase infantil. Y entonces desde que usamos aquí, el Súper, ¿invocamos qué? El mensaje en la tercera clase que tenemos aquí. Este es un mensaje de la clase padre, por lo que imprimiremos un mensaje de la clase padre. Ahora, se puede definir un método con el modificador final. Y luego jet child Cass no puede anular un método final. Esta técnica se utiliza para asegurar que la clase derivada utilice una definición particular de un método. Y ahora hablaremos de variables de sombra. Si bien no se recomienda para dentro de
la clase, declarar una variable con el mismo nombre que una que se hereda del padre. Ahora, hay una diferencia entre un declarar
una variable y simplemente dar un heredado por un valor particular. Por ejemplo, si tenemos una variable entera aquí en la tercera clase, podemos darle un valor en la clase de asesoría, pero no se recomienda reclarela como, por ejemplo, una cadena o como un doble. Ahora bien, esta declaración crea confusión, y esta confusión causa problemas y no sirve para ningún propósito útil. Por lo que la declaración de matriz de un nombre de variable en particular podría cambiar su estilo, pero es decir, y por lo general deben evitarse las variables de sombra innecesarias y generales. Entonces esto es todo para las variables de sombra y los métodos de anulación. Nos vemos en el siguiente video.
6. Hierarchies de clase: Ahora hablaremos de jerarquías de clase. Elenco infantil derivado de un padre puede ser el padre de su propia guardería. Por lo que se pueden derivar múltiples clases de un solo padre. Por lo tanto, las relaciones de herencia a menudo se convierten en jerarquías de clase. Entonces aquí, este diagrama nos muestra una jerarquía de clases que incluye la relación de herencia entre mamífero y clase anfitriona, por ejemplo, pájaro y loro, animal y nacimiento. No hay límite para el número de hijos que puede tener una clase, o el número de niveles a los que la jerarquía de clases puede extenderse a los hijos al mismo padre se llaman hermanos. Entonces aquí, caballo y malo son hermanos. Si bien el hermano arroja las características transmitidas por el padre común, no
están relacionadas por herencia porque una no se utiliza para derivar la otra. En las jerarquías S, las características deben mantenerse lo más alto posible en la jerarquía. De esa manera, la única característica establece explícitamente elenco infantil son aquellas que hacen que la clase sea distinta de su padre y de sus hermanos. Entonces, por ejemplo, si tenemos método en animal, digámoslo. Entonces todos los animales comen. Entonces lo mantendremos en la clase animal. No obstante, no todos los animales vuelan. Por lo que este método volar, podemos crear y la clase de pájaro. Por lo que de esta manera también facilita las actividades de
mantenimiento porque cuando los cambios se
hacen permanentes, se reflejan automáticamente en los descendientes. Recuerda siempre mantener el es una relación cuando construir jerarquías de clase no es una única mejor organización jerárquica para todas las situaciones. Las decisiones que tomas cuando estás diseñando una jerarquía de clases, restringen y guían decisiones de diseño y opciones de implementación más detalladas. Por lo que debes tomarlos con mucho cuidado. Pasando a la clase de objeto en Java, todas las clases se derivan en última instancia de la clase de objeto de una clase. Definición no utiliza la cláusula extiende para derivarse explícitamente de otra clase. Y esa clase se deriva automáticamente de la clase de objeto por defecto. Entonces cuando decimos en, por ejemplo, vamos a crear una clase. Y vamos a ponerle nombre. Cosa tendrá una clase llamada cosa. Esta representación es equivalente a decir extiende objeto. Debido a que todas las clases se derivan algunos objetos en métodos
públicos de un objeto son heredados por API clase Java. Se pueden invocar a través de cualquier objeto creado y cualquier programa Java. La clase Object se define en el paquete
java.lang de la biblioteca de clases estándar de Java. Por lo que tenemos algunos métodos en esta clase de objeto, como se vio después, estado usando métodos de objeto mientras que a menudo en nuestros ejemplos, el método ToString, por ejemplo, se define en la clase de objeto. Por lo que el método de tinción se puede llamar a cualquier objeto. Y es por ello que cuando definimos un método ToString y una clase, en realidad
estamos anulando una definición heredada. La definición de toString que es proporcionada por la clase de objeto. También tenemos otro método que vemos varias veces antes. Eso igual que devuelve verdadero si el objeto es un alias del objeto especificado. Las clases suelen anular la definición heredada del método.equals en favor de una definición más apropiada. Por ejemplo, la clase String anula igual, modo que devuelve true sólo si ambas cadenas contienen los mismos caracteres en el mismo orden. Entonces esto es todo para las jerarquías de clase. Nos vemos en el siguiente video.
7. Visibilidad: Como comentamos anteriormente, todas las variables y métodos, incluso los miembros privados que se definen en una clase de padres son heredados por los clubes infantiles. Existen para un objeto de la clase derivada, pesar de que no se pueden referenciar directamente, se
pueden referenciar indirectamente. Entonces, veamos un ejemplo que demuestra esta situación. Vamos a seguir adelante y crear un nuevo paquete, y démosle el nombre. Visibilidad. Y dentro de este paquete tendrá tres clases. Como de costumbre. Vamos a crear una clase llamada analizador de alimentos. Y aquí tenemos nuestro método principal. Y otra clase. Démosle un nombre. Por ejemplo, artículo alimenticio, ejemplo de Alaska. Lo llamaremos beta. Entonces ahora tenemos tres clases. Ponga analizador, artículo alimenticio y pizza. Por lo que el artículo del pie es vidrio dependiente y pizza se extiende. Pie es crear algunos métodos. Por lo que NPDES creará, por ejemplo, vamos a crear un constructor. Simplemente pizza pública, darle un valor de GM y simplemente llamó al super método y poner artículo que podría crear datos. Entonces esto, por ejemplo, este super Tomaremos dos parámetros, el g que obtenemos del método de pizza. Y por ejemplo, digamos ocho. Y ahora crearemos el método en el artículo alimenticio para que lo entienda mejor. Ahora, aquí en el elemento alimenticio está crear tres enteros. A medida que crear galerías privadas. 30 gramos. Hagámoslo a nueve. Y otra privada. Pero gramos. Y por último, crear un protegido. Ahora vamos a crear nuestro construido y tomará dos parámetros. Démosle un nombre artículo alimenticio. Y tomas dos parámetros. Un número de petagramas, gramos, y el segundo es número de porción, porción. Entonces ahora cuando llamamos al Super aquí, en realidad
llamamos al constructor. Y la clase de elemento alimenticio, tomará dos parámetros, por lo que tenemos dos parámetros. Ahora. Adelante y usémoslo. Tenemos gramos de grasa y así bancos. Por lo que acaba de asignar gramos de grasa igual a número de gramos que ya obtuvimos del usuario. Y lo mismo para las porciones será número de porciones. Ahora vamos a crear algunos métodos. Por ejemplo, para devolver las calorías, gramos de
grasa, multiplicados por las calorías por planta. Y otro método para calcular las calorías por porción, simplemente gire nombres, galerías, porciones, y simplemente calorías y divididos por el Servido. Por lo que regresaremos galerías para voltear. Los terroristas tendrán el método de calorías. Simplemente lo llamamos usando baterías y lo
dividimos por el número de porciones que tenemos el número de porciones en servir. Y este es nuestro método de calorías por porción. Ahora, sigamos adelante y usemos este método y nuestra clase principal. Entonces crearemos una pizza. Pizza. Démosle un nombre pizza especial con un valor de 275. Y vamos a imprimir las calorías por porción. Calorías. Eso es por porción. Y obtendremos calorías especiales por porción y ejecutaremos el código obtendrá calorías por porción, 309. Ahora, la clase de pizza se deriva de la clase de artículo de comida, pero no agrega ninguna funcionalidad o datos especiales. Eso es constructor llama al constructor de artículo alimenticio usando la super referencia, afirmando que son ocho porciones de pizza. El objeto de pizza aquí llamado especial, está en el método principal y se utiliza para invocar el método calorías por porción, que se define como un método público de artículo alimenticio. Ahora, aquí nuestro mensaje debe ser privado. Y lo que hicimos aquí es que podríamos calorías por porción, que es un método público. Entonces esta calorías por porción llama calorías. Calorías es un método privado y galerías llamadas gramos de grasa y cajeros por gramo, y también son privadas. Entonces lo que tratamos de decir aquí que a pesar la clase de pizza no puede hacer referencia explícita a
calorías, calorías por gramos, y cinco gramos. Están disponibles para su uso en directamente. Y el objeto de pizza necesita gorra. Objeto extraño no se puede utilizar diez veces el método de calorías, pero puede llamar a un método que puede. Por lo que el objeto de elemento del pie nunca fue creado ni necesario. Ahora, ya que, por ejemplo, calorías por gramo lo es, estamos absolutamente seguros de que es igual a nueve. Simplemente podemos agregar aquí privada, final y la silla. Entonces lo que estamos diciendo aquí es que esta variable es finita y no podemos cambiarla. Ahora, los otros usos del modificador final implicaron herencia y pueden tener influencia significativa y el diseño de software, especialmente el modificador final, se
puede utilizar, recortar la capacidad está relacionada con la herencia. Por lo que antes mencionamos que el método puede declararse como definitivo, lo
que significa que no puede ser anulado en ninguna clase que extienda esa la que es. El método final se utiliza a menudo para insistir en que la funcionalidad particular se utilice en todas las clases probadas. Ahora, el modificador final también se puede aplicar a toda una clase. La clase final no se puede extender en absoluto. Por lo que simplemente podemos decir ese artículo de clase pública. Y ahora tendremos destinatario diciendo que el tipo pizza no puede subclasificar la clase final poner artículo ya que es finito y no se puede extender. Por lo que al dar esta declaración, esta clase no se puede utilizar en la cláusula extiende de una clase de activo. El compilador generará un mensaje de error en tal caso. Usar el modificador final para restringir las habilidades de
herencia es una decisión clave de diseño y debe hacerse en situaciones en las que una clase infantil podría ser usada posiblemente para cambiar la funcionalidad que usted, como diseñador, el cívicalmente quería ser manejado de cierta manera. Este tema vuelve a surgir y la discusión del polimorfismo, y lo discutiremos más adelante. Entonces nos vemos en el siguiente video.
8. Polimorfismo: Ahora discutimos el polimorfismo y otro principio fundamental del software orientado a objetos. A menudo el tipo de una variable de referencia coincide con la clase del objeto al que prefiere Exactamente. Entonces cuando estamos diciendo, por ejemplo, una es igual a nueva cadena. Y digamos, ahora, lo que hicimos aquí es el tipo de variable de referencia es lo mismo que el objeto de clase, que ahora es el término polimorfismo luego ser definido como tener muchas formas. Una referencia polimórfica es una variable de referencia que puede referirse a diferentes tipos de objetos en diferentes puntos en el tiempo. El método específico invocado a través una referencia polimórfica puede cambiar de una invocación a la siguiente. Entonces supongamos que tenemos un método llamado dueto. Y si hay un objeto de referencia aquí es polimórfico, puede referirse a diferentes tipos de objetos en diferentes momentos. Entonces si esa línea podría discordar, corre y luego bucle, o es un método que se llama más de una vez. Esa línea de código podría llamar a una versión diferente del método de dueto. Cada vez que se invoca, podemos crear una referencia polimórfica en Java de dos maneras, utilizando la herencia y usando interfaces. Echemos un vistazo a cada uno a su vez, comenzará con el polimorfismo Vodafone vía herencia. Entonces cuando declaramos una variable de referencia usando un nombre de clase en particular se puede usar para referirse a cualquier objeto de esa clase. Además, también puede referirse a cualquier objeto de cualquier clase que esté relacionado. Y se declara tipo por herencia. Entonces por ejemplo, probemos esto aquí tenemos nuestro método principal es crear algunas clases aquí. Por ejemplo, crear una clase llamada mamífero, otra criatura de clase. Y los anfitriones de última clase. Entonces tenemos tres clases. El padre clase, adivina la criatura, y tiene un sistema de clase hijo Emile, debería extenderse. Y este es el correo principal, debe extender la criatura. Y por último, tenemos nuestro curso, que es una clase infantil de dominio, y debería extenderlo también. Por lo que ahora tenemos tres vasos aprendidos. Junto con la herencia. Ahora, la referencia principal se puede utilizar para referirse a cualquier objeto de la clase que posee. Entonces, por ejemplo, si decimos, démosle el nombre H. Así que este es nuestro caballo objeto. Y por ejemplo, nosotros, por ejemplo, podemos decir igual a filo y trabajar correctamente. Por lo que esta relación funciona a lo largo de la jerarquía de clases. Entonces si la clase de mamíferos se derivaron de una criatura cascode aquí, también
podemos decir que Ranger, Por ejemplo, vamos a limitar c igual a nu. Y eso funcionará correctamente. Y también puedes iniciar sesión en códigos. Ya que Horus es hijo de tal vez. Ahora la variable de referencia SC puede ser polimórfica porque en cualquier momento del tiempo puede referirse a un objeto Animal, criatura para habilitar al huésped. Entonces supongamos que las tres de estas clases tienen un método llamado move que se implementa de diferentes maneras y cuando se ejecuta esta línea. Entonces si la criatura se refiere actualmente a un objeto de criatura, si c se refiere a un objeto de criatura, se invoca
el método de movimiento de la clase de criatura. De igual forma, si c garantizado se refiere a un objeto mamífero, se invoca la versión continental del MOOC. Y por último, si actualmente C es país refiriéndose a un objeto de caballo, el caballo, que se invocará el método en clase de caballo. Entonces esta es una idea general sobre el polimorfismo. Y el siguiente video, haremos un ejemplo para entenderlo mejor.
9. Ejemplo de polimorfismo parte 1: Ahora echemos un vistazo a otra situación. Por lo tanto, considere esta jerarquía de clases. Las clases en esta jerarquía representan diversos tipos de empleados que podrían ser empleados en una empresa en particular. Entonces, vamos a explorar un ejemplo que utiliza esta jerarquía para pagar un conjunto de empleados de diversos tipos. Entonces en primer lugar, tenemos la clase firme contiene en Maine, desviado crea un personal de empleados e invoca el método de día de pago para pagarles llamar. El programa. El resultado incluye información sobre cada empleado y cuánto es malo cada uno. En todo caso. Esta firma, tenemos el personal. Mantiene una matriz de objetos que representan empleados individuales de diversos tipos. Por lo que se declara que el área tiene que contener referencias de miembros del personal, pero en realidad se llena de objetos creados a partir de varias otras clases como el voluntario empleado, ejecutivo. Y estas clases son todos descendientes de la clase de miembro del personal. Y así la asignación son válidas. El array establecido está lleno de referencias polimórficas. Por lo que aquí en este miembro del personal, podemos acceder a ejecutivo de empleado voluntario, sin duda. Vía polimórfica. Ahora, cada clase tiene sus características específicas. Por lo que todos los trabajadores necesitan tener nombre, dirección y teléfono. Pero si una persona es opositora td, no tiene
que tener un número de seguro social o una tasa de pago. Y aquí es donde el voluntario es diferente al empleado. Y lo mismo para ejecutivo y por hora. Por lo que ejecutivo tienen, tiene un aguinaldo y por hora ha funcionado. Entonces sigamos adelante y creemos nuestras clases. Para empezar. Vamos a crear nuestro paquete. Entonces terminemos con un ejemplo, ejemplo polimorfismo, y crearemos nuestra clase. Tenemos aquí nuestro método principal. Vamos a crear otra clase. Crear el miembro del personal lo nombraría cosas. Entonces tenemos nuestra segunda clase. Entonces. También tenemos vamos a ver qué. Contamos con nuestro personal, tenemos miembros del personal. Crear clase de miembro del personal. Entonces tenemos empleado voluntario Scott, este es el potentado en clase. Y entonces también
tenemos ejecutores, y estas son las dos últimas clases, ejecutivo. Y por último. Entonces ahora que hemos creado todas nuestras clases, asignémoslas juntas. Por lo que tenemos al miembro del personal, voluntario, y empleado que amplían al miembro del personal. Por lo que se ofreció aquí mismo se extiende a los miembros del personal. Y lo mismo con el empleado miembro del personal. Y como podemos ver en esta jerarquía de clases, tenemos clases ejecutivas e infantiles de empleado. Va a ir aquí y extenderlos desde. Y lo mismo con se extiende. Y empecemos con miembro del personal. Como podemos ver aquí, tenemos un miembro del personal, tres variables, nombre, dirección y teléfono, y a toString del método. Y vamos a seguir adelante y crearlos. Y nosotros mismos. Dales un nombre de referencia protegido, dirección. Y tendremos nuestras tres variables. Y ahora podemos crear nuestro constructor para
configurar al miembro del personal usando la inflamación especificada. Por lo que tenemos estas tres informaciones que crear. Nuestra construyeron estas informaciones como de costumbre. Y las tres cuerdas en la barra de direcciones. Y simplemente asignarlos a mirar variables. Y para n igual a p. Así que este es nuestro constructor. Ahora vamos a crear nuestros dos métodos. Tenemos toString, toString, e imprimirá el nombre, dirección, y teléfono. Adelante y crea esto. Llamé a tres, que tenemos nombre más, más. Vamos a crear una nueva línea simplemente usted línea simplemente escribiendo n. Así que este es nuestro Nombre. Y en la segunda línea, nos ocuparíamos. Dirección. Y la dirección. La última línea, número de teléfono. Entonces este es el número telefónico. Y ahora necesitamos añadir una nueva línea. Entonces este es nuestro método toString, y finalmente regresamos el resultado. Ahora, el último método que tenemos en esta clase son los métodos de la bahía de Dublín. Los métodos se duplicaron. Todo empleado tiene un método de pago diferente, permitirá que las clases derivadas definan un método para cada tipo de empleado. Por lo que este método no tendrá ningún cuerpo. Entonces por eso será abstracto. Y también debemos asignar la clase para que sea abstracta también. Ya que tenemos un método abstracto. Entonces esta es nuestra clase de miembro del personal, y seguimos con las otras clases en el próximo Purdue.
10. Ejemplo de polimorfismo parte 2 2: Ahora, ya que terminamos con nuestra clase de miembro del personal, se trasladará a nuestro voluntario. Entonces tenemos un adder aquí diciendo que el voluntario debe implementar el método abstracto Heredado. Funcionario. Ahora heredará. Pero antes, vayamos a nuestra jerarquía de clases y veamos que tenemos un voluntario no solo tenía un método doble B. Entonces volvamos atrás y creemos nuestro constructor. Tenemos constructor voluntario, sarga toma como de costumbre, tres fortalezas. Spank y se tiene que realizar una dirección. Y nuestro super constructor y dar estos tres valores. Por lo que ahora creó nuestro constructor. Creemos nuestro método, que es B. Y como voluntario no pagará nada. Acabamos de devolver 0. Entonces esta es nuestra clase de voluntariado. Ahora pasemos a nuestra clase de empleados representa a un empleado general pagado. En esta clase. Tenemos nuestro constructor como de costumbre, pero volvamos a nuestra jerarquía de clases. Podemos ver que tenemos dos variables nuevas, número de seguridad
social y la ayuda de bade. Tenemos dos métodos para cadenas y pagar. Entonces, en primer lugar, vamos a crear nuestras dos variables. Cadena protegida. Tenemos el número de seguridad social, y otro protegido con un doble tipo ocho. Ahora de nuevo, crear público inconstruido. Y el parámetro ahora tenemos cinco variables en lugar de tres. Tenemos el nombre, la dirección, y el teléfono. Y vamos a sumar número y periodo de seguridad social. Sigamos adelante y en estos cinco invirtiendo y por nombre, por la dirección, el teléfono, y pidamos el número del Seguro Social. Y por último, jugó un doble estándar. Y lo que vamos a hacer es asignar las tres variables como de costumbre al super, usando la super referencia a la clase constructor. Y ahora terminamos con el nombre, dirección, y el teléfono. Ellos son automáticamente. Acudieron a la funcionaria y se les asigna aquí. Y ahora funcionaría con nuestro número de seguridad social. Número de seguridad social, le daremos un valor de S. Y la tarifa que hemos cebado con un valor de tasa. Ahora, trabajemos con nuestros métodos. Tenemos dos métodos que toString que necesitamos modificar y la tasa que debaten. En primer lugar, vamos a modificar las dos hebras. ¿ Quién es el método del tanque? Y si usamos cepa
super D2 obtendrá el método toString, lo que lo almacenamos aquí. Por lo que obtenemos nombre, dirección, y número de teléfono. Entonces sigamos adelante y usemos un nivelado. Tenemos. Vamos a crear un argot llamado resultado y utilizar el super para
llamar al método ToString y al supertipo de miembro del personal. Para. Ahora tenemos toda la información y el miembro del personal como dirección numerada y foránea aquí. Y vamos a sumar a nuestro número de seguridad social simplemente diciendo número de seguridad
social con un valor de número de seguridad social. Y luego devolver el resultado. Para. Ahora, terminamos con este método. Sigamos adelante y trabajemos con nuestro método de bahía, que es público y devolvería un valor de theta. Ahora, este es nuestro empleado. Vamos a trabajar con nuestro ejecutivo. Y ahora volvamos a nuestra jerarquía de clases y vemos que ejecutivo tienen bono, la variable w, bono y dos métodos, nuestro bono y ellos irían al ejecutivo y un nuevo bono doble privado. Vamos a crear nuestro
ejecutivo ahora público construido y darle algunos valores que tenemos como de costumbre, se encuentra
el nombre y la dirección, luego el número de seguridad social, nombre dirección. Y por último, son ocho. Y como de costumbre, llamaremos al super, Dale un nombre. Dirección POR teléfono como social y elevar. El bono aquí será igual a 0. Por lo que establecemos bono igual a 0. Ahora este es nuestro constructor. Vamos a crear nuestros dos métodos. Tenemos aguinaldo despertado, público, bono poeta. Si tomas un parámetro de una tableta, Vamos a nombrarlo coronas, y le asignaremos bono a esta caja. Y el último método es el pago calculará y regresará para un ejecutivo, que es el pago regular del empleado más el bono de una sola vez. Entonces obtenemos nuestro método. Y este método, vamos a crear un pago, que es super bueno. Por lo que calcularemos la fecha de pago como de costumbre
del empleado y más el aguinaldo para luego regresar. Entonces esta es nuestra clase ejecutiva. Vayamos ahora a nuestra clase. Y nuestra clase tendríamos una nueva variable, horas trabajadas y tres métodos en la nuestra y a cadena. Entonces aquí, en primer lugar, creamos nuestra variable privada, horas trabajadas. Y vamos a crear nuestro constructor como de costumbre. Y tenemos a, B, Jang. Y finalmente, y
asignaremos estas cuatro variables,
cinco variables al super AND a, B, S, y R. Y le daremos a las horas de trabajo el valor de 0. Aquí no tenemos un método llamado agregar horas para agregar nuestro método Evitar, horas
públicas y horas. Y asignará horas salvajes. Entonces lo que sea que tengamos,
invertimos horas, le sumamos estas horas. Y otro método es el debate para este empleado. Por lo que en este método volvería. Y tenemos un doble pago. Y se paga el pago. Tenemos que pagar tasa veces cuántas horas simplemente trabajan. Por lo que tenemos nuestras horas de trabajo. Y luego después de eso, cada vez que pagamos, empleado se restablecerá automáticamente a 0. Después regresamos al pago. Entonces este es nuestro pago. Y por último tenemos nuestro método toString es cadena pública. Y solo podemos sacar el resultado del tanque y luego modificarlo agregando esas horas actuales. Cuántas horas amortiguador actualmente funcionan. Por lo que agregamos una nueva línea. Y luego vamos a
sumar, digamos horas y horas actuales, horas trabajadas. Después devuelven los resultados. Terminamos con nuestras clases de padres e hijos, miembro del personal, voluntario, ejecutivo, y ávidamente, el siguiente video hablaremos sobre el personal y para las clases.
11. Ejemplo de polimorfismo parte 3: Ahora todavía tenemos dos clases, clase
firme y la clase de personal. Trabajemos con la clase de personal. Dentro de esta clase se creará una lista de algunos miembros del personal. Por lo que miembro del personal privado, como Adam y su nombre es, cosas, consigue crear un constructor para configurar un personal del telescopio simplemente sin parámetros y le dará valor a esta lista de cosas. Es lo nuevo. Por lo que tenemos ocho elementos en esta lista y y tenemos algunos elementos. Lista de cosas, posición 0, ejecutivo por ejemplo. Se, el nombre de la cadena. Y la dirección será 1-2-3. Número de teléfono principal, por ejemplo, digamos menos 0.51111. Y este número del Seguro Social, es, por ejemplo, el 123456789. Y por último, la tasa es, por ejemplo, digamos 2423.07.07. El elemento en el puesto uno, empleado y empleado. Y como de costumbre, por ejemplo, como de costumbre, digamos por ejemplo, 0.01. Número del Seguro Social 12345451234. Y por último, iterar, decir ciento doscientos cuarenta y seis. 0.15. Y hacemos lo mismo con los demás sólo para no copiarlos. Y así este es el segundo 17567. Y cambiemos a Haití por ejemplo. Digamos, vamos a mantenerlo como empleado en el segundo. Y luego el que después se rompe como maestro. Y el otro tiene suficiente, así que ajusta el y hazlo talla seis. Ahora, vamos a modificar este nombre, este empleado. Y por 55 al número
telefónico y 99. Y por último iterar por ejemplo, 3,246. Y lo mismo aquí. Y tenemos el 999. Lo mismo calentado. Cambiemos los números y la tarifa como de costumbre. Por ejemplo, pongámoslo en 1010. Y por último, tenemos que votar y se sabe t. Y era sólo el nombre, dirección y el número de teléfono sin estos dos adicionales. Entonces sigamos adelante y eliminarlos. Y este es nuestro primero, y este es nuestro segundo voluntario. Simplemente cambia aquí. P5. Y sí, esta línea principal 123. Y lo es. Entonces estos son, estos son nuestros miembros y esta lista. Ahora todavía tenemos dos métodos. Uno y ejecutivo, una palabra venenosa y reunida y la nuestra. Y usémoslos. Y nuestros miembros del personal, nuestro miembro del personal. Ahora, necesitamos trabajar con ejecutivo. Por lo que simplemente escribimos ejecutivo. Y decir al programa que necesitamos un miembro del personal ejecutivo. Estamos especificando cuál es la lista del personal cuando se empieza a ponerlo entre paréntesis y bono al alza, y eso son 500s por ejemplo. Y lo mismo. Y tendremos personal enumerado tres. Y ahora tenemos el personal, el método de día de pago para pagarlo o los integrantes. Por lo que después de crear el constructor creará un día de pago de vacío público. Y tenemos una cantidad que pagar, así que lo ahorraremos y duplicó la cantidad. Y en primer lugar, imprimamos cada lista de personal. Todo miembro en la lista de personal mediante impresión. Y luego si la cantidad es igual a 0, entonces seguramente es voluntario. Entonces solo imprimiremos tanques. De lo contrario, imprimiría la cantidad que vamos a pagar. Y el monto es igual a cada establecido. Con el método da la cantidad es igual a 0. Entonces sólo gracias. Se trata de un voluntario sólo dándole las gracias. De lo contrario, cuando esté fuera. Más la cantidad. Ahora tenemos nuestro método en el personal. Sigamos adelante y lo usemos en nuestra firma. Por lo que recrea el objeto del pentagrama. S es lo nuevo y usa un método. Y vamos a ejecutar el código, ver qué va a pasar. Entonces aquí tenemos en primer lugar, nuestro primero. Volvamos atrás e imprimamos la línea entre F3, menos cada miembro de la lista y esta lista, sólo para, para ser más claros. Entonces después de imprimir cada, cada cantidad, imprimir una nueva línea. Y ahora dentro de la foto y ejecutar el código una vez más, obtenemos la misma salida, pero con una línea para dividir a cada miembro de esta lista. Entonces, en primer lugar, tenemos alguna dirección, número de
teléfono y la cantidad, y luego tenemos lo mismo. Y por último, tenemos que voluntarios. Y conocidos y Karla, ya que son voluntarios, no
imprimirán la cantidad porque no se les está pagando. Por lo que acabamos de imprimir. Gracias. Entonces creo que este ejemplo demuestra el uso del polimorfismo que hemos establecido. Y cada vez miembro del personal, cada vez que imprimirá diferentes cosas ya que cada vez que trabaje de manera diferente. Entonces esto es todo para el polimorfismo. Nos vemos en el siguiente video.
12. Recursión: Ya hablamos de recursión. recursión es una poderosa técnica de programación que proporciona una solución elegante a ciertos problemas. Hemos visto muchas veces en ejemplos anteriores que un método puede llamar a otro método para lograr una meta. Lo que aún no hemos visto, sin
embargo, es que un método puede llamarse a sí mismo. recursión es una técnica de programación en la que un método se llama a sí mismo con el fin de cumplir con su propósito. Pero antes de entrar en los detalles de cómo usamos la recursión en un programa, necesitamos explorar el concepto general de recursión. El poder de pensar recursivamente es esencial para poder utilizar la recursión como técnica de programación. En general, la recursión es el proceso de definir algo en términos de sí mismo. Por ejemplo, supongamos que queríamos
definir formalmente una lista de uno o más números separados por comas. Dicha lista se puede definir recursivamente como un número o como un número, seguido de una coma, seguido de una lista. Por lo que podemos decir que queremos un número seguido de una coma. Y entonces así son dos ejemplos. Tenemos un número y luego una coma, y luego una lista. Por mucho tiempo que sea la lista, la definición recursiva la describe. Una lista de un elemento, como este ejemplo, se define completamente por la primera parte no recursiva de la definición para cualquier lista más larga de un elemento que va si parte de la definición se utiliza como muchos veces según sea necesario hasta que se alcance el último elemento. Lo que estamos diciendo aquí es que tenemos un número y luego seguido de una coma, y luego tenemos una lista. Y entonces lo mismo va para 88 es un número, seguido de una coma, luego seguido de esa lista. Y 40 es la coma numérica, y luego una lista de un elemento. Y por último, tenemos un número. Ahora, la definición de lista contiene una opción que es cursiva y una que no lo es. A la parte de la definición que no es recursiva se le llama el caso base. Si todas las opciones tuvieran el componente recursivo, esa recursión nunca terminaría. Por ejemplo, si la definición de listas fuera simplemente un numerado seguido de una coma, seguido de la lista. Ninguna lista podría terminar nunca. Este problema se llama recursión infinita, dissimilar al bucle infinito de Glenn, excepto que el bucle ocurre en la propia definición. Entonces ahora sigamos adelante y hablemos de recursión en matemáticas. Por ejemplo, supongamos el n factorial. Entonces digamos y factorial. Por lo que el valor referido como n factorial se define para cualquier entero positivo n como el producto de todos los enteros entre uno y n inclusive. Entonces si decimos n factorial es igual a tres veces dos veces. Uno es seis. Ahora, lo mismo si decimos cinco factorial es cinco veces cuatro veces tres veces dos, todo el camino a uno. Las fórmulas matemáticas a menudo se expresan recursivamente. Y definición de N factorial puede expresarse extra como. Y factorial es igual a n veces n menos uno. Aquí tenemos factorial cuatro y más grande. Por lo que mientras n sea mayor que uno, n factorial es igual a n veces n menos uno factorial. Y lo mismo vale para esto. Y así sucesivamente. Ahora bien, el caso base de esta definición es un factorial. Un factorial es igual a uno. Todos los demás valores de n factorial definidos recursivamente como N veces el valor n menos un factorial. Entonces usando esta definición, cuando decimos 50 factorial, es igual a 50 veces 49 factorial. Y 49 factorial es igual a 49 veces 48 factorial y así sucesivamente. Y este proceso continúa hasta llegar al caso base de uno. Debido a que n factorial se define en los enteros positivos, esta definición es completa y siempre concluirá con el caso base. Ahora, vamos a trabajar con bacterias y programación. En primer lugar, deberíamos crear un método de materia para devolver un entero. Vamos a llamarlo factorial y la sarga tome un entero como pago. Y ahora, como dijimos, el caso base es cuando n es igual a uno. Entonces diremos que si m es igual a uno, sólo le
devolveremos uno. De lo contrario, si n no es igual a uno, acabamos de regresar y multiplicado por el factorial de n menos uno. Ahora, para realizar esta operación, sólo
llamamos al método una vez más con parámetro de n minús1. Ahora sigamos adelante y lo usemos. Por ejemplo, digamos que n es igual a cuatro. Y este método y, y ejecutar el código, obtenemos 24. Entonces lo que pasó aquí es que
nosotros, realizamos factorial con un parámetro de cuatro. Por lo que va a este método. Tenemos para ello no es igual a uno. Entonces tenemos cuatro veces el factorial n menos uno, que es tres. Por lo que cuatro veces factorial tres. Entonces tenemos cuatro. Huelga aquí, cuatro veces algo. Ahora factorial de tres, va al método una vez más. Tenemos tres veces factorial dos. Entonces tenemos tres veces algo. Y lo mismo, una vez más, dos veces factorial 12 veces factorial uno. Entonces la última vez que ingresamos al método, tenemos n es igual a uno, así que solo devuelva uno. Y esto es todo, es cuatro veces tres veces dos veces uno. Entonces imprimiremos esto cuatro veces 312 veces 224, y conseguiremos 24. Ahora, podríamos enfrentarnos a algo. Por ejemplo, si ingresamos un valor negativo, digamos menos siete, obtendremos un error. Porque no nos ocupamos de esto. Simplemente tenemos el número positivo y lo multiplicamos por el número debajo de él. Y tenemos el caso base, que es cuando n es igual a uno puede arreglarlo
diciendo mientras n es menor o igual a uno, devolver uno, así que obtenemos uno. Y si no queremos conseguir uno, por ejemplo, si queremos conseguir minús1, podemos decir que si n es menor que igual a uno, regresa minús1. Y, y luego movemos esto desde aquí y
ejecutamos el código, conseguiremos menos uno. Entonces este es un pequeño ejemplo y recursión. Y en los próximos videos, lo
exploraremos más.
13. Ejemplo: subre con recursion: Ahora usemos otra operación matemática simple para demostrar el concepto de programación recursiva. Considera el proceso de sumar los valores entre uno y n inclusivo, donde n es cualquier entero positivo. La suma de los valores de uno a n se puede expresar como y más la suma de los valores de uno a n menos uno. Entonces podemos decir que la suma de n es igual a n más y menos uno. Por lo tanto, mantengamos esto aquí como comentario. Y empecemos con nuestro método. Démosle un nombre. Alguna estática pública devuelve un entero con el valor y, y nuestro caso base siendo sordo y es igual a uno. Devolver uno de lo contrario se giraría el número y más suma de n minús1. Entonces como dijimos aquí, deberíamos devolver algo de n es igual a n. Esto es n más la suma de n menos uno. Y este es nuestro método y vamos a usarlo aquí. Imprimir algunos de los promedios. En este caso cuatro. Obtenemos cuatro más tres más dos más uno igual a diez. Ahora, el caso base en el ejemplo de suma es cuando n es igual a uno, momento en el que no se hacen más llamadas recursivas. La recursión comienza a caer de nuevo en las versiones anteriores del método de suma, devolviendo el valor apropiado cada vez. Cada valor de retorno contribuye al cómputo del Sol en el nivel superior. Sin un caso base, resultaría recursión
infinita. El sumario funge diferentes valores iniciales de non end y hasta que el procesamiento se familiarice. Entonces en esta figura ilustra las llamadas recursivas cuando el método principal invoca algunos para determinar la suma de los enteros de uno a cuatro. Cada caja representa una copia del método tal como está en. Las invocaciones se muestran aquí como líneas sólidas y retornos como líneas punteadas. El resultado del valor de retorno en se muestra en cada paso. El camino recursivo se sigue completamente hasta que el caso base es cuando la suma es igual a número aquí, valores iguales a uno. Y después de eso, ahora se llega a la base. Por lo que la causa entonces comenzó a devolver el resultado hacia arriba a través de la cadena. Entonces cuando n es igual a uno, comenzamos a devolver sus resultados. En primer lugar, regresamos uno. Entonces tenemos dos más 133 más tres es igual a seis, regresará 66 más 410 volvería diez. Ahora, por supuesto, hay una solución no recursiva al problema de suma que acabaría de explorar. Una forma de calcular la suma de los números entre uno y un número e inclusivo de manera iterativa es, por ejemplo, usaremos el
bucle for para uno a n inclusive, tan igual a n y suma más igual a. Y en primer lugar, tenemos un entero, suma igual a 0. Y luego imprimimos algo más suma, y aquí tenemos que sumar. Por lo que la suma es igual a 0 más uno más dos más tres, más cinco más cuatro. Y cuando yo es igual a cuatro, la salida, el bucle for y la suma de impresión. Y aquí agregué una línea de impresión aquí. Ahora, si ejecutamos el código, conseguiremos algunos son diez. Ahora, desde luego aquí podemos decir que yo es igual a uno. Y obtenemos lo mismo. O puede establecer r es igual a uno y comenzar con i igual a dos. Y por supuesto obtenemos el mismo resultado. Por supuesto, la solución es sin duda más directa que la versión recursiva. Utilizamos el problema de suma para demostrar la recursión porque es simple, no porque utilizarías la recursión para resolverla en condiciones normales. recursión tiene la sobrecarga de invocaciones de múltiples métodos y en este caso presenta una solución más complicada. Entonces es contraparte iterativa. El programador debe aprender cuándo usar la recursión y cuándo no usarla. Determinar qué enfoque es mejor depende del problema que se resuelva. Todos los problemas se pueden resolver de manera iterativa. Pero en algunos casos, la versión iterativa es mucho más complicada para algunos problemas y nos permite crear programas relativamente cortos y elegantes. Por último, hablaremos de recursión directa e indirecta. La corrosión dialéctica ocurre cuando un método se invoca a sí mismo, como cuando algunos objetivos, se produce
alguna recursión indirecta cuando un método invoca otro método, resultando
eventualmente en que el método original sea invocado de nuevo. Por ejemplo, el método m1 invoca un método M2 y M2 invoca el método m1. Podemos decir que m1 es indirectamente recursivo. El monto de indirección podría ser de varios niveles de profundidad. Al igual que cuando m1 en libros, m2, que invoca M3, que invoca a M4. Y por último, este método y para invoca m1. Y la recursión directa requiere de toda la misma atención para tener casos que la recursión directa requiere. Además, en recursión directa puede ser más difícil saborear porque como llama el método interviniente, por lo tanto, el extracto es uno terminado al diseñar o evaluar en métodos directamente recursivos. Y demostró que la indirección es verdaderamente necesaria y claramente explicada como quieras.
14. Recursión: Maze parte 1: Después de usar la recursión para algunos programas simples, ahora úsalo con otros más complejos. Sigamos adelante y creemos un nuevo paquete. Nómbralo programas. Y creamos dos clases. Dos fabulosos. Eso significa que tenemos el primero se llama laberinto búsqueda. Aquí tenemos nuestro método principal. Y el segundo, lo
llamaremos laberinto. Ahora es conmutar asombro implica una gran cantidad de prueba y error, seguir un camino, retroceder cuando no puedes ir más allá y probar otras opciones sin probar. Tales actividades a menudo se manejan muy bien utilizando la recursión. Tenemos nuestras dos clases. Esta es nuestra clase de chofer, puede buscar. Tenemos un método principal aquí y nuestro laberinto donde crearemos nuestro método recursivo. Entonces aquí, en primer lugar, escribamos MAs y usaremos el agregado bidimensional. Nunca lo usó antes, como una matriz, sino una bidimensional. Entonces usaremos una matriz bidimensional de enteros para representar este laberinto. Y el objetivo es pasar de la esquina superior izquierda a la esquina inferior derecha y anotarlo y luego te pondremos de vuelta. Entonces este es nuestro laberinto. Inicialmente, uno indica un camino claro y un 0 indica un camino negro. A medida que se resuelve el laberinto, estos elementos de matriz se cambian a otros valores para indicar caminos
intentados y, en última instancia, trayectoria exitosa en todo el laberinto. Entonces tendríamos dos valores. Uno les dará una final de referencia, y uno es, limitemos. Entonces si intentamos un camino, entonces el valor será 31 sobre el pasado Menos ruta de nomenclatura. Y le daremos un valor de siete. Ahora, el primer método que vamos a crear es el método toString para imprimir esta cuadrícula, este laberinto. Y para seguir adelante y usaremos al público. Aquí tenemos cepa. Destruye y volvería. Un laberinto dominios crearán como una cadena. Entonces, en primer lugar, tenemos nuestra fuerza y resistencia. Y este resultado. En primer lugar, imprimamos una línea e imprimamos una línea aquí. Y acabamos de imprimir esto. Por lo que crearemos dos para bucles anidados para bucles. Uno para las filas y el segundo para las columnas. Por lo que aquí tenemos la gran longitud de punto. Y la otra perspicacia es esa longitud. Entonces si decimos genial yo esa longitud. Entonces tomaremos cada fila y, y veremos la longitud del trazo. Por lo que tendrá 131313. Por lo que la longitud del bucle for externo como ocho y el interno for loop es 13. Y ahora vamos a seguir adelante y almacenarlos en el resultado. Almacenamos la cuadrícula en i y j y agregamos cotizaciones dobles aquí. Y lo hemos hecho, después de eso, acabaremos de imprimir alineados. Entonces con eso aquí y tu línea. Y se va a sumar estos. Y entonces deberíamos fingir los resultados. Entonces vamos a probarlo. Un objeto significa que usemos el método toString e imprimimos el código. Mira nuestro laberinto. Entonces esta es nuestra red eléctrica. Ahora, como dijimos, uno indica un camino y 0 indica un bloque. Pero ahora, para saber si esta posición es válida o no, crearé un método, llamémoslo piloto. Antes de crear nuestro método porque si. Entonces seguiremos adelante y crearemos un nuevo método. Démosle un nombre. Y devolverá verdadero si esta posición es válida y falsa. De no ser así. Entonces, toma dos elementos. Y por último, tenemos resultado booleano. En primer lugar, es falso. Y ahora comprobamos si la celda está en los límites de la matriz. Por lo tanto, comprueba si rho es mayor o igual a 0. Y si rho es menor o igual a esa longitud. Y por supuesto, lo mismo para la columna. Si la corriente es mayor o igual a 0 y la columna es menor o igual a la longitud de punto rho. Entonces este es el caso. Entonces comprobamos ahora si la celda no está bloqueada y no está atada previamente. Entonces si esa fila cuadrícula
igual fila y columna es igual a uno, entonces este es un movimiento piloto, nunca lo
intentaría antes y no está bloqueado. Entonces si no es igual a 0 o no es igual a tres, entonces vamos adelante y vamos a obtener el resultado. Cambiamos los resultados de falso a verdadero. Y después de eso, devolvimos el resultado, cualquiera que sea ese resultado, verdadero o falso, lo devolvería. Ahora. Por lo que este ahora es un método para comprobar si se trata de una jugada válida. Entonces lo que estamos diciendo aquí es, por ejemplo, vamos a revisar esta posición. Por lo que esto está en la posición 012 y se acercan a 0. Entonces, en primer lugar, esto, si quieres acceder a esta posición, podemos escribir cred, fila y columna. Está en la columna 3012. Siento oírlo. Entonces en la posición 02, tenemos este 012, tenemos esta posición, que 22 aquí, 03, 0s y así sucesivamente. Por lo que este método válido, en primer lugar, tomaremos los dos parámetros, fila y columna. Y en primer lugar, comprobará que la celda, los límites de la matriz. Entonces si rho es mayor que 0 y menor que la longitud, por lo que si es entre 08 y igual aquí, comprobará si la corriente está entre 0 y la longitud 13. Después de eso, si este es el caso, entonces vamos adelante y comprobamos el número y discreto. Entonces vamos a acceder, lee joe Cannon en este caso 12. Y ya veremos aquí tenemos 12012012 aquí. Entonces este es el 12. Si es igual a uno, entonces cambiaremos el resultado a verdadero. En este caso, tenemos uno, por lo que lo cambiaremos a verdadero y volverá resultado como verdadero. Ahora tenemos todas las herramientas y tendemos a empezar con nuestro método recursivo. Por lo que empezaremos con ello en el siguiente video.
15. Recursión: Maze parte 2: Todavía tenemos nuestro último método, que es nuestro método recursivo. Y los únicos movimientos válidos por el laberinto están en la prioridad completa direcciones directas hacia abajo, secadas e izquierdas. No se permiten movimientos diagonales. Entonces en este ejemplo, el laberinto es de ocho filas por tres columnas. A pesar de que el código está diseñado para manejar asombrado de enfatizar. Pero por ahora, vamos a trabajar con 813. Entonces pensemos esto a través de recursivamente. El ms se puede atravesar con éxito si podemos
atravesarlo posición 00 hasta la posición 712. Por lo que en este caso en la posición 00, necesitamos trabajar con ella, por lo que comprobaremos si es un puesto válido. Si es válido, es igual a uno. Entonces tenemos cuatro direcciones. Tenemos 01100 menos uno y menos 10, menos 10100 menos uno y no válido. Por lo que aún tenemos dos movimientos válidos, que es 0110. Y iremos con 01 por ejemplo. Y comprobaremos si es válido. Es válido. Y, y ahora nos encontraremos en la misma posición que estábamos en la primera. Por lo que también tenemos cuatro direcciones, arriba, abajo, derecha, e izquierda. Y tenemos que revisar entre ellos. Entonces ocurre lo mismo cada vez que nos movemos en este laberinto. Ahora, vamos a crear nuestro método. Vamos a llamarlo Avars. Y este método es booleano. Devolver verdadero, pretender viaja el laberinto y falso de lo contrario. Publico booleano. Y para empezar con 0-0 erudito 22 parámetros, intro y encarnado y trabajaría con el cuerpo aquí. En primer lugar, necesitamos a nuestro booleano. Vamos a nombrarlo hecho. En primer lugar, será igual a falso. Y al final del método, deberíamos devolver un booleano. Entonces regresaremos hecho. Ahora. Tenemos que comprobar que el puesto en el que nos encontramos es válido. Por lo que usaremos el método válido. Creamos un apalancamiento. Entonces si es válido, le daremos dos parámetros, fila y columna. Y si este es el caso, trabajaremos aquí. Después de comprobar que se trata de una posición válida. Ahora lo cambiaremos de uno a tres desde que lo probamos. Entonces cambiaremos la fila
y columna de la cuadrícula de una a tres ya que la encontramos aquí. Por lo que podemos decir que Esto ha sido juzgado. Ahora, sólo hay un caso en el que se resolverá la red eléctrica y volvemos verdad. Por lo que es cuando rho es igual a la longitud de la cuadrícula minos1. Entonces rho igual a esa longitud menos uno, y m es igual a fila
roja menos uno. Y luego cambiaremos hecho de falso a verdadero. De lo contrario, tenemos que revisar. Entonces aquí estamos diciendo que si estamos en la posición 712 en este caso, ya que la longitud de punto menos uno es ocho menos 17. Y quid pro dot longitud cuando S1 es 13 menos 1 12. Entonces si estamos en la posición 712, entonces se resuelven los medios. W1 igual a, y luego regresaremos hecho y ya terminamos. De lo contrario necesitamos consultar con no en esta posición todavía. Tenemos que comprobar la bajada mediante el uso de w1 igual para atravesar hacia abajo. Agregaremos la fila uno. Entonces si estamos en pro 66 más uno, sabemos a través de siete fila uno con la misma columna. Y no se hace lo mismo. O podemos decir si w1 no es igual a, es igual a falso. Si aún no lo hicimos. Lo mismo. Intentamos escribir fila, columna más uno igual a rho menos uno. Lo mismo. Prueba ro minos1, fila y columna menos uno. Entonces esto es todo. Y ahora lo explicaremos. Pero antes de dun, dun y dislocación es parte de lo finito, pero entonces necesitamos cambiarlo de tres o uno o lo que sea a siete, que es igual a. Entonces esto es lo que hicimos aquí es que creamos un método llamado el travesaño, que es un método booleano. Devuelve un valor booleano que indica si se encontró una solución. En primer lugar, el método determina si es válido un movimiento a la fila y columna especificadas. Por lo que se considera válido un movimiento, como dijimos antes, si se mantiene dentro de los límites y si década contiene uno en esa ubicación indicando que un movimiento en esa dirección no está bloqueado. Por lo que la llamada inicial para atravesar pasa en la ubicación superior izquierda, 0-0 comenzará con 00. Y si la mudanza es válida, esa entrada de Vint se cambia de una a tres. Si es válido, entonces cambiará la entrada de cuadrícula de una a tres. Y luego así estas marcan esa delegación como visitada para que después no retractemos nuestros pasos. Y este método determina entonces si el laberinto se
ha completado al haber llegado a la ubicación inferior derecha. Entonces si hemos llegado a la ocasión de abajo derecha, entonces cambiaría hecho de falso a verdadero. Y nuestro laberinto ha terminado entonces. Y de lo contrario tenemos algunos pasos que seguir. Entonces en este método, probamos diferentes caminos. Entonces, por ejemplo, podemos empezar por U1 y luego bajar uno. Y fue bloqueado por tres ceros. Y en realidad hay tres, hay tres posibilidades del caso base para este problema que va a terminar cualquier particular por el primero si una mudanza inválida, porque la película está fuera de límites. Entonces, por ejemplo, aquí, si llegamos hasta aquí, tenemos uno y la posición de la izquierda está fuera de encuadernación. Por lo que dará por terminada el programa. Y otro es una jugada inválida porque la luna ha sido juzgada antes. Entonces, por ejemplo, si vamos aquí 21 y luego volvemos, entonces no lo sé, tal vez vaya a intentar a la izquierda y luego volver a los dos abajo. lo probamos antes, por lo que no será válido. Por último, una jugada que llega a la ubicación final. Entonces después de pasar por el laberinto y llegar al fondo justo aquí, uno, entonces hemos buscado el laberinto y va a terminar nuestro camino. Ahora, CurrentLocation está en la esquina inferior derecha. Se buscó una solución en cada una de las direcciones primarias si fuera necesario. En primer lugar, me miramos, miramos hacia abajo llamando recursivamente al método de travesaño y pasando y la nueva ubicación. Entonces la lógica del método terrorista comienza de nuevo todo. Usando la nueva posición. Una solución se encuentra en última instancia al
intentar primero bajar de la ubicación actual o no se encuentra. Entonces por ejemplo, si empezamos con 00 y tenemos aquí 01, investigamos abajo primero, primero, tenemos 010, discúlpame. Entonces aquí estamos en la posición 1-0 volvería a intentar toda la lógica. Y revisaremos primero abajo, no
tenemos nada, tenemos 0. Entonces no es válido. Entonces lo intentaremos, ¿verdad? 0, no podemos intentarlo ¿verdad? Ya que no es válido, entonces lo intentaremos. Ahora es igual a tres, entonces no es válido también. Entonces finalmente intentaría izquierda, que es igual, que está fuera de encuadernado. Por lo que esto no es válido. Entonces regresaremos falso y volveremos a aquí. Después de eso, lo que haremos es intentar derivado. Tenemos aquí en la posición correcta. Es 01. Por lo que aquí estamos en la ubicación 01. En primer lugar, empezaremos por mirar hacia abajo. Se encuentra 0 invitado. Entonces regresaremos aquí y miraremos, bien, tenemos uno, es válido. Entonces vamos a esta posición x Así que ahora estamos en esta posición, volveremos a hacer la misma lógica de nuevo. Empezamos por abajo, tenemos uno, encontramos el camino. Lo mismo con uno. Vamos y buscamos. Tenemos 0 inválidos, ve con la derecha. Aquí lo mismo. Hasta que lleguemos ya sea a un movimiento bloqueado. Si agrego uno y continúo hasta llegar a la esquina inferior derecha, paso a paso hasta llegar a la esquina inferior derecha. Pero por ahora, iremos a la búsqueda y tenemos, este método son booleanos. Por lo que creamos una variable booleana, nombre y maíz. Dos iguales a M. Traverse comenzarían con 00. Entonces si esto es igual a cierto, si laberinto, podemos decir igualmente bueno, dejarlo vacío. Datos al mismo. Y si este es un caso, solo imprimir fue con éxito. De lo contrario, imprimiremos no hay camino posible. Y por último, imprimiremos el laberinto. Corre más tiempo. Adelante y ejecuta ese código, obtendrá el laberinto fue atravesado con éxito. Y aquí tenemos nuestro camino 777 abajo Séptimo, abajo hasta llegar aquí que arriba siete, todo el camino abajo, y luego arriba hasta llegar a la última centena y la esquina inferior derecha. Entonces esto es todo para el problema del laberinto, problema. Y en el siguiente video hablaremos de Torre de Hanoi.
16. Recursión: torre de Hanoi: Y este ejemplo servirá al rompecabezas de las Torres de Hanoi. El rompecabezas de las Torres de Hanoi fue inventado en los 18 ochenta por matemático francés, se
ha convertido en uno de los favoritos entre los informáticos porque es una ilusión es una excelente demostración de elegancia recursiva. El campesino consta de tres bolsas erguidas y un conjunto de discos con agujeros en el medio para que el deslizamiento sobre las espaldas. Cada disco tiene un diámetro diferente. Inicialmente, todos los discos se apilan en una clavija en orden de tamaño, tal manera que el disco grande, el más grande está en la parte inferior, como se muestra en esta figura. Y el objetivo de este rompecabezas es mover todos los discos de la clavija original al PEC destino. Pero este es el banco original. El paquete de destino es éste. Por lo que podemos usar el Peg extra como lugar temporal para poner discos. Pero hay que obedecer las siguientes tres reglas. En primer lugar, no podemos colocar un disco más grande encima de un disco más pequeño. Por ejemplo, no podemos tomar este escritorio, colocarlo aquí, y luego tomar el otro y colocarlo encima. Segundo, Podemos mover sólo un disco a la vez. Y por último, el escritorio viejo debe estar en alguna clavija excepto el escritorio en tránsito entre paquetes. Por lo que hoy no podemos tomar de las torres. Estas reglas implican que se debe mover el disco más pequeño fuera
del camino para poder mover el disco más grande de 1 a otro. Entonces aquí tenemos un ejemplo de solución paso a paso para las torres de rompecabezas de Hanoi usando tres escritorio. Entonces para finalmente mover los tres discos de la primera clavija a la tercera clavija, primero hay que llegar al punto donde el más pequeño a esto fuera del camino y el segundo banco para que
el disco más grande pueda moverse de la primera clavija a la tercera clavija. Aquí tenemos la configuración original. Entonces en primer lugar, movemos el primero, este el disco más pequeño hasta el último Peck. Y luego después de eso movemos el segundo al, a aquí, a la segunda clavija. Y luego recuperaremos este humo que el disco más pequeño y lo pondremos encima del segundo disco. Y ahora podemos mover el último disco de aquí al destino. Y luego trasladamos el primer disco a la primera bolsa. Mueve el segundo disco, hizo la última bolsa, y luego mueve el primer disco a la última página. Entonces tenemos siete movimientos. Y este ejemplo, mientras se usa tres. Usemos esta idea para formar una estrategia general. Entonces para mover una pila de n discos de la clavija original a la clavija de destino. En primer lugar, tenemos aquí n discos. Lo que hicimos es que movimos y minos1 al disco de esta clavija a la segunda clavija. Entonces lo que debes hacer es mover la parte superior más n menos uno discos de la clavija original a la clavija extra aquí. Después mueve el disco más grande de la clavija original al destino Peg, como lo hicimos aquí. Y finalmente, mueva el n menos uno discos de la clavija extra
al paquete de destino y use la recursión antes. Por lo que el paso para mover n menos uno discos después del camino es el mismo problema de nuevo. Entonces cuando tenemos aquí y minús1 escritorios aquí, así que tenemos que mudarlos de vuelta aquí. Podemos realizar los mismos pasos que de costumbre. Y después de llegar a este punto, podemos entonces realizar el mismo paso. Todas las demás cuentas. Entonces ahora vayamos a este programa y creemos un nuevo paquete. Nuestro encuentro. Aquí tenemos nuestro método principal. Y la segunda clase, lo
nombramos Torre de molesto. Y ahora, en primer lugar, configuramos el rompecabezas con un número especificado de disco. Por lo que creamos nuestras torres constructivas. Y entonces tomará un entero, ¿cuántos discos? Así que lo nombra. Y tenemos, por supuesto, yo lo haría local variable total escritorios. Y lo que haremos es igualar a n. Y ahora necesitamos resolver este programa, este botón. Entonces usaremos dos métodos aquí. El primer método es mover el número especificado de discos de una torre a otra moviendo una subcultura de n menos un disco al camino. Entonces como dijimos, lo que haces es hacerlo privado. Lo llamaremos mudanza torre. Y ahora hoy el número de disco como parámetro y el inicio y el final, y el extra. Ahora, como dijimos, si sólo nos queda un escritorio, sólo lo
movemos de aquí al último Peck. Y así este es nuestro caso base. Si número de este igual a uno, entonces simplemente lo movemos. Entonces vamos a crear el método que moverá los discos lo harán en lugar de escribirlo cada vez aquí. Por lo que tenemos vacío privado. Démosle un nombre, mueva un disco. hoy, dos enteros empiezan de donde lo vamos a mover a dos. Y hasta que simplemente imprima que mueven un disco de principio a fin. Ahora, entonces si el número de disco es igual a uno, entonces mueva un disco desde el principio para actuar. De lo contrario. Lo que va a hacer es lo que dijimos aquí. Por lo que necesitamos mover n menos uno discos de la primera clavija a la clavija extra y luego mover n menos uno. Mueve ese último desde la clavija inicial del primer día hasta la clavija final aquí, como podemos ver aquí. Y luego mover estos de nuevo a la primera clavija. Entonces como dijimos, tenemos que movernos. El primer paso es mover n minús1 de inicio a extra. Por lo que realizaremos esta torre de movimiento. Tenemos n menos uno aquí, por lo que un número de menos uno. Y empezamos con inicio. Y los trasladamos a extra. Y la bolsa de extracto sería el Peck final. Después de eso, necesitamos mover un disco. Ahora estamos aquí. Entonces lo que debemos hacer es mover este disco de la primera bolsa al último picoteo. Por lo que realizamos esta operación simplemente llamando al método que usted creó aquí. Mueve una muerte de principio a fin. Y por último, deberíamos mover estos discos a la mascota final. Entonces crearemos, movimos nuestro número de muertes del extra, el extra aquí hasta el final. Entonces aquí tenemos y, y empezamos. Y ahora se dice este método. Ahora, podemos crear un método público solo para usar este método fácilmente sin entrar en el extra de inicio y fin, renombrarlo a vendido. Y tomará discos totales como parámetro, un entero. Y dos simplemente llamados movieron nuestro método con un número de esto, que es el total. Esta bolsa es la clavija número uno, el final es tres, y la extra es dos. Y ahora sigamos adelante y ejecutemos este código y nuestro método principal. Por lo que crearemos un objeto Torre de Hanoi y T, las nuevas torres de Hanoi. Y usémoslo con escritorio 34. Y aquí tenemos tierra. Y este código obtendrá las siguientes líneas. Y lo mismo. Por ejemplo, digamos diez. Esto obtendrá tantas líneas para mover todos los discos desde la primera clavija hasta la última. Ahora, piensa en la versión iterativa. ¿ Cómo se vería? Y si es tan simple como esta versión recursiva. Entonces esto es todo para el problema de la torre de Hanoi. Y nos vemos en el siguiente video.
17. Sort de inserción: Considera que tienes una lista de enteros como esta lista. Y quieres que se ordenen de menor a mayor. Oye, puedes usar salazón. Y en realidad hay múltiples algoritmos de clasificación y hablaremos de algunos de ellos. Por lo que dentro por clasificación de inserción. La clasificación de inserción es un simple algoritmo de clasificación que funciona similar a la forma en que viste jugar a las cartas en tus manos. El array se divide virtualmente en una parte ordenada y sin clasificar. Los valores de la parte sin clasificar se recogen y se colocan en la posición actual en la parte ordenada. Dos aquí podemos empezar con este ejemplo. Supongamos que tenemos esta lista, y esta lista se dividirá en dos partes, una parte ordenada y no ordenada. Por lo que en primer lugar, lo resolveré por dos, será el primer elemento solamente. Entonces esta es nuestra primera lista y esta es la segunda parte. Ahora, cuatro ya está ordenado ya que es sólo un elemento, sólo
hay un elemento en esta lista. Y no tienes que hacer nada. No hay elemento a la izquierda de que sea mayor que cuatro, entonces necesitamos sumar tres. Entonces tenemos 43. Comparamos tres con cuatro. Por lo que cuatro es mayor que tres. Entonces deberíamos cambiarlos y vamos a conseguir 34. Ahora, la parte ordenada de la lista es 34 y la parte sin clasificar es lo que haya aquí. Y pasaremos al siguiente elemento. Tenemos que comparar dos a 44 es mayor que dos, luego los cambiamos. Y lo mismo que comparamos dos con 33 es mayor que dos también. Así que cambiarlos una vez más, obtendremos 234. Y ahora esta es la parte ordenada, y esta es la parte sin clasificar, y así sucesivamente hasta llegar al último elemento de la lista. Y luego terminaremos. Entonces la idea general es comparar cada elemento con todos los elementos a la izquierda. Intercambio. Cada vez que encontramos un elemento a la izquierda mayor que el elemento que estamos utilizando. Entonces sigamos adelante y escribamos el código. Te vas a crear una clase. Y en primer lugar, vamos a crear nuestra matriz de enteros, nuestra lista de enteros. Y por ejemplo, tenemos cinco elementos en esta matriz. Déjame almacenarlos directamente al 5110. Entonces esta es nuestra matriz y vamos a crear nuestro Método. Pero llamémosle inserción. Y para tomar parámetro una matriz, vamos a nombrarlo en el trabajo aquí. Entonces, en primer lugar, tenemos el bucle for para pasar a través de todos los elementos de 0 a longitud enumerada menos uno. Los ceros ya están ordenados, así que no tenemos que empezar con 0. Entonces empezamos con uno. Por lo que nuestro resultado de bucle for con uno y termina una longitud de punto menos uno. Ahora crearemos un entero. Vamos a nombrar clave ID, y será nuestro elemento en esta lista. Entonces estaremos comparando un de i Así que aquí son de tres a 1012 y así sucesivamente. Y lo vendimos y un entero llamado juego. Y tendremos otro entero será j, i menos uno para empezar por minos1 y volver hasta llegar a 0. Y lo que estamos haciendo aquí es que estamos empezando este número, por ejemplo, que el estado sí caso. La tercera línea, la tercera clave en un entero. Y pensamos que este número a un entero llamado clave. Y luego almacenamos la posición que nos estamos recuperando para empezar, que es la posición i menos uno, j i menos uno. Por lo que nos vamos de lado con esta posición y retrocediendo hasta llegar a 0. Por lo que crearemos un bucle while. Si bien j es mayor que 0 y la clave es menor que a de J, necesitamos intercambiar. Entonces a decir aquí es que y j es menor, es mayor que 0. Entonces aquí en este caso j es igual a uno. Tan bueno. Y la segunda condición, mientras que clave, que es dos, es menor que a de J, en este caso cuatro. Por lo que necesitamos cambiarlos. Nosotros intercambiamos. Y luego una vez más, comprobamos las condiciones. Tenemos j mayor o igual a 0. En este caso, j es igual a 0. Por lo que esa condición es válida. Y dos en este caso, tenemos aquí también y aquí cuatro, así 23, entonces tres es mayor que dos, entonces esto también válido. Tenemos que cambiar una vez más. Y luego terminamos con esto for loop ya que j será mayor que 0. Y en este caso, por lo que cada vez que ejecutemos este for loop, j será decrementado por uno. Y aquí necesitamos intercambiar esto, crear un entero llamado tamp. Y como de costumbre, que los cambien tomará un de j y almacenamiento aquí, y diez y a de j. A de j más uno en este caso. Y finalmente, tomaremos un j más uno y le daremos el valor de w Así que aquí los cambiamos. Y ahora dijimos, volvamos a imprimir. En primer lugar, imprimamos la matriz tal como está antes de ordenar. Por lo que imprimir en un y algún espacio. Después realiza este método con un a. y luego eso se imprime una vez más. Para que imprimamos la luz del código y el tiempo y vamos a conseguir primero que nada, el sin sal añadido y luego obtenemos el ordenado, ya que utilizamos el método de inserción que creamos aquí. Ahora podemos ver cómo esto cambió cada vez. Así que imprimamos la matriz para crear otro bucle for después de cada cambio. Después de ejecutar el bucle. E imprimir un J2, en este caso, algún espacio. Y luego, y aquí necesitamos imprimir una isla. Antes de ejecutar este bucle y ejecutar el código obtendrá esto. Entonces, en primer lugar, tenemos 32510. Empezamos con yo igual a uno. Por lo tanto, igual a onReiniciar, t igual a a de i, j es igual a a a de 12, y j es igual a 0 en este caso, que es i minos1 0. Entonces tenemos un bucle while que se ejecutará sólo una vez ya que J es igual a 0 y luego leer recomendado. Por lo que la condición aquí, no será válida para otra ejecución. Por lo que necesitamos cambiarlos ya que se cumplen las dos condiciones. Lo mismo con cinco. Comparamos cinco con ahora. Cinco con 25 es mayor que dos, entonces esta condición no se satisface. No entrará en el bucle for con simplemente aunque e incremente I por uno. Ahora tenemos el número uno. Aquí lo mismo. Vamos a comparar este con cada elemento e intercambiar los dos números. Entonces, por ejemplo, 15 los cambiarán. Y luego 13, los intercambiamos una vez más. Y por último, 12, canjearlos. Y por último tendremos a Dan. Dan es mayor que todos los demás elementos. Por lo que no entrará al bucle, al bucle while, y terminaremos con los dos bucles, el bucle interno y externo. Y podemos imprimir,
imprimir diciéndote mirar hacia fuera y una nueva matriz hacia fuera. Entonces esto es todo para la clasificación de inserción. Exploraremos más algoritmos de clasificación en los próximos videos.
18. Orden de selección: Pasemos ahora a otro algoritmo de clasificación es la selección. El algoritmo de clasificación de selección ordena una matriz
encontrando repetidamente el elemento mínimo de la parte no ordenada y poniéndolo al principio. Ahora estamos considerando orden ascendente. También tenemos el orden descendente en el que podemos encontrar el elemento máximo y almacenarlo al principio. Y como la clasificación de inserción, tenemos dos partes. El que ya estaba ordenado y la parte sin clasificar. Y cada iteración de clasificación de selección, el elemento mínimo de la submatriz no ordenada se recoge y se mueve a la submatriz ordenada. Entonces usemos un ejemplo. Usaremos la misma lista aquí. Y eliminemos esto. Tenemos este método, eliminar estos. Y vamos a mantener este método funcionando aquí. Pero antes, ejecutemos este código y usemos esta lista. Ahora. Pero lo vamos a hacer en este algoritmo de clasificación es encontrar el mínimo cada vez y almacenarlo en el desordenado la parte ordenada. Por lo que en primer lugar, encontraremos el mínimo y esta lista aquí tenemos uno como mínimo, tomaremos este 11 y lo cambiaremos por este número. Sea cual sea este número, lo
cambiaremos por uno. Entonces aquí tenemos uno ahora. Y así déjame escribirlo aquí. Entonces tenemos 1253 y que el siguiente paso es encontrar el mínimo y esta lista. Por lo que el mínimo es cierto, y tenemos que iniciarlo en esta posición. Entonces estamos bien ya que el mínimo son dos. Por lo que el siguiente paso sería el mismo que el primero. Sentido, no necesitamos cambiar nada. Ahora, vamos a ver esta lista. Tenemos 5310 y aquí encontramos el mínimo. El mínimo es de tres. Tenemos que almacenarlo en el primer elemento. Por lo que necesitamos cambiar tres con cinco a la siguiente. Es decir, para cambiarlos. Por lo que vamos a obtener 123510 y esquema de vidrio comparó estos dos números como de costumbre, Encuentra el mínimo entre ellos y guárdelo en el primer elemento de esta lista. Y como diez es mayor que cinco, entonces no necesitamos hacer nada. Y esta es nuestra lista final. Entonces ahora sigamos adelante y escribimos como código. Estático público, vacío, parámetro de
selección de una matriz, entero. Y en este caso, por ejemplo, en primer lugar, necesitamos almacenar la longitud, la longitud, la longitud para usarlo en el bucle for. Por lo que aquí tenemos la longitud de esta lista. Al lado de nuestro for loop, podemos decir array.length o ambos, lo mismo. Y ahora necesitamos encontrar el elemento mínimo en la parte sin clasificar. Por lo que la parte sin clasificar debería estar empezando por i más uno. Por lo que cada vez que terminemos con compararé y encontraré el mínimo en la parte de i más uno a la longitud. Y aquí tenemos n menos uno. Ya que no tenemos que terminar en el último elemento, simplemente
podemos agregar y aquí. Y el bucle for interno compararía los dos últimos elementos. Entonces en este caso, vamos a almacenar el mínimo como yo igual a i Y ahora deberíamos encontrar el mínimo y la parte sin clasificar. Por lo que empezamos con i plus one y la matriz angulada, array.length o y la misma simplicidad Maxwell. Y ahora compararemos cada elemento para encontrar el mínimo. Por lo que en primer lugar, consideramos que el mínimo está en el índice i. el índice y un entero llamado mínimo. En primer lugar, soy igual a 0. Por lo que consideramos que el número mínimo en esta lista está en el índice 0 para ir y mirar el índice 0. Entonces encontraremos tres y no es el mínimo. Por lo que necesitamos comparar este número con todos los demás. Y eso es lo que vamos a hacer para comparar una j En este caso, j es la lista de i más uno de aquí hasta el final. Entonces si i de j es menor que array de hombres, entonces necesitamos intercambiar el índice y los hombres, en
realidad será el siguiente. Entonces lo que estamos diciendo aquí es que los hombres serían iguales, y trabajemos con este ejemplo para entenderlo mejor. Entonces, en primer lugar, empezaremos con i igual a 0, i igual a 0. Almacenamos n mínimo 0. Ahora estamos mirando este número y j será igual a 0 más uno es uno que se sentó con uno y, y con 1234. Entonces terminaremos con cuatro. Vamos a comparar array de uno. F de uno es menos que matriz de hombres, yo de hombres. Recuerda, muchos xn iguales a 0 y J, en este caso es igual a uno, irán y compararán T2, que está agregando uno con tres, solo array de mínimo, array de 0. F. Dos es menos de tres, entonces mínimo ahora ya no es éste. Ya no está en el índice 0. Está en el índice j, en este caso en el índice uno. Por lo que vamos a dar valor mínimo y nu de uno. Y lo mismo que antes. Ahora, J es igual a dos. Compararía j, I, a de j y a de dos. Tenemos el I2 aquí, cinco con cualquiera del nuevo mínimo, que es uno. Por lo que debes comparar ahora como cinco con 25 es mayor que dos, entonces no pasará nada. Entonces vamos a aquí, comparamos array de tres, que es uno con L2. Por lo que uno es menor que T2. Por lo que necesitamos dar el valor mínimo y nuevo, el valor de uno. Y por último, tenemos aquí en qué índice, el valor mínimo ya que después de encontrar el mínimo usando este for loop, necesitamos intercambiar este mínimo con el elemento en la lista ordenada donde deberíamos ordenarlos. Entonces lo que debes hacer es como de costumbre, tomaremos un mínimo consultado en un entero llamado damped than. Cambiamos lo que sea que haya mínimo con nuestro ojo. Y por último, dale a este i index ID array en el índice i, el valor de n. Así que aquí los intercambiamos y volvamos atrás y usemos este método aquí. Entonces la selección y las matrices, array, y lo mismo. Los imprimiremos y conseguiremos 123510. Entonces creo que esa clasificación de selección es más fácil que la inserción. Entonces en términos de comprensión, básicamente
es simplemente encontrar el mínimo en el bucle for interno y luego cambiarlo con el primer elemento aquí. Pero aquí. Y esto es para selección, así que te veo en el siguiente video.
19. Orden de burbujas: El tercer algoritmo de clasificación del que vamos a hablar es bubblesort. Bubblesort es el algoritmo de clasificación más simple que funciona intercambiando repetidamente los elementos adyacentes si están en aguas subterráneas. Por lo tanto, considere esta lista de cinco elementos. En primer lugar, comparamos los dos primeros elementos
y los intercambiamos ya que cinco es mayor que uno. Y luego hacemos lo mismo para el número 235 es mayor que cuatro, entonces deberíamos intercambiar. Entonces este es el nido ahora. Y lo mismo para el número de elemento. 345 es mayor que dos, ella debería intercambiar. Y por último tenemos 58. Y como están en el orden correcto, ocho es mayor que cinco, entonces no intercambiamos. Ahora bien, podemos ver que esta lista aún no está ordenada, ya que tenemos 1424 es mayor que dos. Entonces lo que debes hacer es repetir los mismos pasos y
otra vez hasta que lleguemos a la lista ordenada. El peor de los casos, si tenemos el aquí un elemento, por ejemplo, que dicen 0. Por lo que este 0 se debe intercambiar 12345 veces. Tenemos seis elementos en esta lista. Y el peor de los casos es intercambiar este 05 veces. Entonces si tenemos una lista de n elementos, deberíamos intercambiar n menos una vez. Por lo que podemos realizar esta operación n menos una vez, y eventualmente obtendrás esta lista ordenada. Entonces sigamos adelante y escribamos este código para crear otro método. O burbujea con una matriz ID de nombre de parámetro como de costumbre y funcionaría aquí. Entonces, en primer lugar, tenemos un bucle for. Como dijimos, de 0 a n menos uno, podemos decir array.length. Y dentro de este for loop tenemos otro for loop para intercambiar cada dos elementos. Si el código incorrecto para comparamos cada dos elementos adyacentes, a de j es a de j es mayor que a de j más uno. Entonces sólo los intercambiaremos. Vamos a crear un tamp entero. Ahora aquí, primavera de RAM, y lo mismo aquí. Y si consideramos que temp igual a array dot a j y a j, lo que sea que haya en j más uno. Y luego si j plus1, el valor sal, y este es nuestro método y lo siento, tendremos n menos uno y n menos uno. Usemos esta burbuja y la usemos aquí, e imprimimos la última una vez más. Y vamos a conseguir 325110. Esto es antes de comer y después de salar 123510. Ahora, nuestro código se puede mejorar haciendo una tarea sencilla. Entonces, por ejemplo, aquí, intercambiamos los elementos aquí. Primera vez. Y luego la segunda vez, sólo
necesitábamos intercambiar 42. Y esta lista está ordenada ahora. Pero en nuestro ejemplo, estamos obligados a pasar por toda la lista y minús1 veces. Entonces una cosa que podemos mejorar es f. Y llegamos a un punto donde nuestro for loop interno no realizan ninguna tarea, entonces podemos igualar porque no tenemos elementos para intercambiar. Por lo que podemos hacer esta tarea usando un booleano. Entonces, llamémoslo swat. En primer lugar, es, debe ser y no darle el valor aquí
le dará el valor dentro de nuestro bucle for externo. Swap dos será primero el igual a false en este caso. Y si, si sólo vomitamos al menos una vez, entonces después de salir de este bucle interno comprobará swap. Si se intercambian igual a falso. Entonces no realizamos ningún intercambio aquí. Por lo que podemos salir del bucle for ya que nuestra lista está ordenada ahora. Para que podamos romper. De lo contrario se mantendrá el intercambio continuo. Y ejecutamos el código, obtenemos el mismo resultado que antes. Pero ahora es mucho más simple y no tomará tanto tiempo como antes. Entonces esto es todo para bubblesort, el algoritmo de clasificación más simple entre todos ellos. Y nos vemos en el siguiente video.
20. Orden de fusión de fusión: Pasando a otro algoritmo de clasificación, fusionar ordenar. Merge sort es un algoritmo divide y conquista. Entonces déjame seguir adelante y crear una nueva clase. Subclase, creado nombre de inserción se fusionó. Y discutirá fusionar sort. En primer lugar, consideremos una pequeña lista de cuatro elementos y luego discutamos una lista más grande. Para, por ejemplo, consideremos una lista con cuatro elementos, 2431. Entonces a, vamos a hacer es dividir esta lista en dos lista. El primero tendremos 24, contendrá dos elementos, y el segundo tendrá los dos últimos elementos, 31. Entonces ordenaremos cada lista por sí solos. Entonces 24 ya están ordenados, así que no necesitamos hacer nada, solo escribirlos. Y aquí tenemos 31, necesitamos cambiarlos. Por lo que esta es nuestra segunda lista ordenada. Y luego después de eso necesitamos fusionarlos. Ya que están ordenados. Por lo que el primer elemento debe ser el más pequeño. Por lo que vamos a comparar el primer elemento en las dos listas. Aquí tenemos 21. Entonces uno es explotado y escribiría uno. Y luego compararemos dos con 32 es menor que dos, y luego tres con cuatro. Lo mismo, orgullo v y luego todavía tienen el último elemento en la primera lista, desde cuatro. Y luego terminamos. Ahora, usemos una lista más grande. Tenemos en esta lista siete elementos. Dividimos esta lección a inodoros. Y la primera lista será de cuatro elementos y la segunda tres elementos. Entonces hacemos lo mismo con esta lista dividida dos a 22, lo mismo con la otra también. Y todavía tenemos un solo elemento, así que lo dividiremos en uno y haremos lo mismo. Y esta lista, tenemos dos elementos, dividiría en un elemento y cada lista. Y luego tendremos lista 1234567. Cada lista contiene sólo un elemento. Después de eso, necesitamos fusionarlos. Empezamos con los dos elementos aquí. Tenemos veintisiete y treinta y ocho. Veintisiete es menor de lo que escribirías 2738. Lo mismo aquí, 343982. Y después de eso, necesitamos fusionar las dos listas aquí, como hicimos en el ejemplo anterior. Entonces, en primer lugar, tenemos tres, después tenemos veintisiete, treinta y ocho, cuarenta y tres. Aquí lo mismo. Y finalmente tenemos nuestra lista finita final salada. La idea de la especie de fusión es bastante simple. Se requiere llamar al método sería más de 1s, dos hasta que lleguemos. Lista de un elemento, luego recrear listas ordenadas como se muestra aquí. Adelante y escríbalo ahora. Por lo tanto, para completar el Merge Sort, es necesario escribir dos métodos. podría pensar el primer método, la función principal que ordena la matriz utilizando otro método. Entonces, vamos a escribirlo. Vacío público. Vamos a llamarlo público estático, vacío. Y aceptará un entero y sin índice e índice alto. Representan ¿por dónde debemos empezar? Y luego si baja es menor que la dura, entonces podemos continuar. De lo contrario, no necesitamos hacer nada. Significa que lo bajo es mayor o igual a lo alto. En este caso, sólo tenemos un elemento en la lista y no necesitamos citarlo. Entonces estamos trabajando en si lo bajo es menor que lo alto. Entonces lo que debemos hacer aquí es al índice medio igual a bajo dividido por dos. Y entonces lo que haremos es ordenar y dividir la lista en dos listas. Y luego, así la parte izquierda sola y luego así la Derecha pero así puede hacer eso va a entrar nuestro A, tenemos con baja y luego ordenar la derecha pero en un medio más uno. Y después de eso, necesitamos fusionar las mitades ordenadas. Entonces llamaremos a una fusión de límite de método. Y tomará como parámetros izquierda, baja y alta. Y sigamos adelante y creemos nuestro método de fusión. Por lo que tenemos aquí podemos hacerlo privado, privado, estático, vacío, fusionado y como método
habitual. Y ahora necesitamos encontrar los tamaños de las dos submatrices y que se fusionen. Por lo que el primer tipo es límite n uno igual a menos uno. Y el segundo es N2 igual a hi menos. Ahora tenemos las dos tallas. Nuevas listas. Por lo que le nombramos lista uno. O podemos emitir izquierda y derecha. Por lo que hemos dejado el tamaño y la derecha. Este segundo tamaño. Después de eso, es necesario copiar los datos de esta matriz original a nuestras dos matrices. Ahora, hacemos eso. Simplemente usamos un bucle for con el límite de un1 y copiamos todos los datos de derecha a izquierda. Tan izquierda i igual a i. Y otro for loop para copiar los datos de la parte derecha de la matriz a nuestra lista llamada derecha. En este caso, comenzaremos con una matriz de media más uno y más j Y ahora copiamos los datos aquí. Además, lo siento. Y así es como copiamos nuestros datos. Ahora, necesitamos fusionarlos juntos. Entonces lo que debes hacer es crear un bucle while para copiar todos los datos que almacenamos y copiamos de izquierda y derecha a nuestra actualización original. Entonces como dijimos en este ejemplo, después de ir a esta fase, necesitamos almacenarlos nuevamente en la lista original. Entonces aquí compararemos los dos elementos y luego los
iniciaremos y la matriz original y lo mismo aquí. Comparamos estos elementos juntos y obtendremos nuestra lista ordenada. Entonces volvamos a nuestro código y escribamos un bucle while. Y la condición de este while loop que aún
tenemos elementos tanto en izquierda como en derecha. Entonces aquí vamos a crear enteros i igual a 0, y lo mismo para J, 0. Y vamos a crear un entero y nombre para nombrarlo, que es igual a o. ahora, mientras que i es menor que n, uno, que es el tamaño de izquierda y J es menor que. Y dos estarán trabajando en la pendiente. Ahora primero que nada, compararemos izquierda con derecha de j, de i es menor que j, luego lo almacenamos. Este componente y la lista original. Por lo que a será igual a izquierda. Y luego incrementamos i Ya que terminamos con esto, por ejemplo, volvamos aquí atrás. Lo que hemos hecho en este caso es que comparamos la izquierda de i aquí, 27 con tres. F, 27 es menor a tres. Deberíamos guardarlo aquí. Ahora, en este caso, 27 es mayor que tres, entonces deberíamos almacenar tres en este caso. Entonces de lo contrario, deberíamos almacenarlo. Y en cualquier k componente derivado e incremento j por uno. Y en ambos casos, deberíamos implementar k Ya que se llenará de cualquier manera. Ahora, después de terminar este bucle while, podríamos tener algunos elementos que quedan en cualquier lista. Por lo que para llenar el original, debemos completar lo que quede en nuestras dos listas. Eso crearía un bucle while. Si bien yo es menor que N1. El N1 si i es igual a N1. Y salimos de este while loop por yo igual a uno, entonces este while loop no funcionará ya que sería ya igual línea uno. Entonces si este es el caso, sólo
debemos comprar lo que haya en la parte izquierda e incremento, incremento k. Y lo mismo con n2 si j es menor que y hacer exactamente lo mismo, para escribir increment j y k. Entonces ahora terminamos con nuestra función de fusión. Y sigamos adelante y lo usemos. Y voy a método principal. Entonces volvamos atrás. Pero antes revisemos nuestros límites. Aquí tenemos izquierda y derecha. Y aquí deberíamos empezar con un nodo. Ya que no estamos sentados con ceros, sentados con cualquiera que sea nuestro índice aquí. Y ahora volvamos atrás y documentemos aquí. Nuestro método principal. Esto crea un retraso igual a, en este caso, cuatro a 718 y utilízalo ahora, usa el tipo con una longitud 0 menos uno. Y luego usa un bucle for para imprimir nuestros elementos. Y discordia 12478. Entonces esto es todo para fusionar. Por lo que nos vemos siguiente video.
21. Sort rápido: Al igual que merge sort, quicksort es un algoritmo divide y conquista. Se necesita un elemento como Pivot y particiona la matriz alrededor del pivote. Hay muchas versiones diferentes de quicksort que gran pivote y diferentes formas. Podemos escoger el pivote como primer elemento. Primer elemento, elemento aleatorio, o el medio. Yo había explicado qué es el pivote en un momento. En primer lugar, vamos a escribir una lista. Entonces considera que tenemos una lista contiene 101819. Y así esta es nuestra lista. Ahora elegimos elemento como pivote. Entonces sigamos adelante y elegimos, por ejemplo, el último elemento y separarlos para entenderlo. Y va a tener que hacer lo mismo aquí. Entonces aquí tenemos esta lista y este es nuestro pivote. Entonces justo aquí abajo. Y aquí tenemos el primer elemento. Ahora necesitamos dos flechas, 2.2 a dos posiciones en esta lista. El primero, comenzamos con el primer elemento de la izquierda y el último elemento antes del pivote. Entonces aquí tenemos nuestra primera, digamos que este es el primer elemento y este es el último. Ahora, lo que va a hacer es comparar el primer elemento si es mayor que el pivote, que necesitamos cambiarlo, necesitamos terminar con un presupuesto que sea menor que el pivote y la otra parte debe ser mayor que el pivote. Entonces para hacer eso, primero, diez es mayor que el pivote. Ahora, entonces se
moverá, pasará a 80. Aquí tenemos 80. Entonces ahora estamos en 8050. Por lo que 80 está listo para ser intercambiado. Ahora miraremos a 5050. ¿ Es 50 mayor que el pivote? No, entonces podemos cambiarlo. Por lo que ahora intercambiamos 50 por 80. Aquí tendrá 80, y aquí tenemos 15. Ahora cambiamos las posiciones de estas flechas. Tenemos esta flecha al 42º 30. Ahora, lo mismo hará aquí lo mismo. Tenemos 13, ¿es 30 más bajo que el pivote? Sí. Entonces no necesitamos intercambiar. Se irá a otro ir a 90. Y ahora compararemos 90 con 40. 90 mayor que el pivote? Sí. Entonces tenemos que cambiarlo. ¿ Está 40 más bajo que el pivote? Sí. Entonces necesitamos intercambiar estos dos elementos, tendrá 90 aquí. Y el, ahora las dos flechas, vamos a nombrarlos para poder ver qué va a pasar. Tenemos bajo y alto. Ahora antes de intercambiar, estas eran las posesiones, bajas y altas. Baja en la posición 0123 y posición alta para. Ahora, después de intercambiar los dos elementos, necesitamos incrementarnos por uno y disminuir alto por uno. Por lo que estaré en posición, en esta posición y baja estará en esta posición. Y siempre que lo bajo sea igual o superior a lo alto, podemos saber que hemos terminado aquí. Desde que el lóbulo ha pasado alto. Ahora, lo último que debemos hacer es intercambiar este elemento con el pivote. Por lo que tendrás 17 Y en el pivote 90. Ahora podemos ver que todos los elementos menores que 70 y todos los elementos aquí son grandes y 70. Entonces esta es la idea del QuickSort. Podemos realizar este mismo algoritmo exacto a esta lista. Podemos elegir 40 como el pivote y trabajar en consecuencia. Y lo mismo va aquí. Y dejamos que la recursión haga el trabajo por nosotros. Esta es la idea general y utilizaremos la recursión para poder implementarla más de una vez ha surgido. Entonces tenemos dos métodos aquí. El primer método será privado, entero. Vamos a renombrarlo partición. Tomará los parámetros y emitirá. Y bajo que este método, donde tomamos el último elemento como pivote. El elemento pivotante en su posición correcta en la matriz ordenada. Y casos todos los elementos
más pequeños, más pequeños que el pivote a la izquierda y mayores a la derecha. Entonces sigamos adelante y empecemos con este método. En primer lugar, tenemos nuestro pivote se crea. Ahora el vector es igual al último elemento de esta lista. Y tenemos el índice de elemento más pequeño. Se trata de un sname i, que es igual a minús1. Y este caso, comenzamos con nuestro for loop. Empezamos por baja. Todo el camino a. Ahora, necesitamos comprobar si el elemento actual es más pequeño que el pivote. Entonces si j es menor en este caso, y necesitamos incrementar i. uno, swap y array j. Así que vamos a cambiarlo. Y a a. Entonces igual a, perdón, a igual i, igual a j. Y finalmente, de vuelta a G. Así que ahora intercambiamos los dos elementos. Después de terminar con este bucle de palabras, necesitamos intercambiar el pivote con en un i más uno. Entonces en este caso, crear otro momento e intercambiar los dos elementos. Como dijimos. Aquí, tenemos el pivote está en la ubicación a. Y luego dando el bronceado dos. Ahora intercambiamos los dos metadatos por elementos y luego simplemente regresaremos más uno. Entonces este es nuestro método, el método de partición. Este método tomó el último elemento como Pivot, coloca el elemento pivote en su posición correcta en el ordenado en a, y coloca todo más pequeño a la izquierda y mayor a derivado. Ahora, el otro método es la función principal que implementa ese quicksort. Y llamémoslo público estático, vacío. Para que tomara tres parámetros como de costumbre, y bajo y alto. En primer lugar, comprobaremos si el flujo no es mayor que el alto. Podemos trabajar de otra manera no va a funcionar porque no va a tener sentido. Y vamos a tener, vamos a crear un entero, vamos a nombrarlo por, por es ese particionamiento y profundidad. Eso lo hará, donde usaremos este método que creamos aquí. Por lo que pi usaría partición en lo más bajo. Ahora, después de conseguir el índice, ahora, deberíamos ordenar los dos, abase la parte izquierda, ¿verdad? Pero así usaremos el mismo método una vez más sin otra forma de Pi menos uno. Y lo mismo por más otra forma de escribir. Y luego terminamos con este método. Puedes usarlo. Y nuestro principal método. Entonces creamos una matriz, por ejemplo, vaporizamos, y con algunos valores 426173. Y llamaremos al método de ordenamiento 0 y longitud actualizada minús1. Después crea un bucle for e imprime los elementos de esta lista. Entonces como de costumbre, con algo de espacio aquí, y sigamos adelante y corremos. El código obtendrá 1234567. Por lo que esta es la matriz se clasifica matriz después de realizar este QuickSort. Entonces esto es todo para Quicksort. Nos vemos en el siguiente video.
22. Búsqueda lineal y binal y: En ocasiones queremos revisar, poner un elemento de la lista. Y aquí podemos usar algoritmos de búsqueda. Tenemos varios algoritmos de sesiones y comenzaremos con la búsqueda lineal. Entonces sigamos adelante y creemos un nombre de clase. Y luego el método principal, vamos a crear nuestra matriz. Entonces esta es nuestra matriz. Y supongamos que desea buscar el número a un entero, número igual a dos. Ahora, se supone que esta búsqueda lineal
pasa por toda la lista y comprueba si el elemento de esta lista es igual a dos. Devolver la posición. De lo contrario, si ningún elemento coincide con este número, deberíamos volver menos uno. Entonces sigamos adelante y creemos nuestro método. Y tomará esa lista y un número entero. Entonces lo que vamos a hacer es comparar este número con cada elemento de esta lista. Entonces usa un bucle for para pasar por todos los animales de la lista. Y posición número dos. Entonces deberíamos devolver esta posición específica. De lo contrario. Entonces el método no funciona. Deberíamos devolver un entero. Y de lo contrario, si mejor pasamos por toda la lista y no devolvimos ningún entero, entonces no encontramos que el número se especifica número menos uno. Y si usamos la t al número n e
imprimimos, conseguiremos entonces mazos del número dos. Ahora aquí, 22. Cambiemos el número, por ejemplo, dos a seis. Por lo que aquí encontramos el número seis en el índice tres de esta lista. Y lo mismo si lo cambiamos, por ejemplo, a nueve e
imprimimos, conseguiremos cuatro y x cuatro. Ahora, probamos otro número que no está en la lista, obtenemos menos uno. Entonces así es como funciona la búsqueda. Es muy sencillo, pero se necesita. Mucho tiempo. Hablaremos más adelante de la complejidad del tiempo para cada algoritmo. Ahora, pasemos a otro algoritmo de búsqueda es la búsqueda binaria. Aquí, deberíamos tener una matriz ordenada o lista, y sabrás por qué en un momento. Por lo que la idea de la búsqueda binaria es buscar una matriz ordenada dividiendo repetidamente el intervalo de búsqueda por la mitad para comenzar con un intervalo que cubra toda la matriz. Si el valor de la clave de búsqueda es menor que el elemento en el medio del intervalo, estrechó el intervalo a la mitad inferior, de lo contrario, estrecharlo. La mitad superior. Revise repetidamente hasta que se encuentre el valor del intervalo o el intervalo esté vacío. Entonces veamos un ejemplo. Aquí tenemos esta lista. En primer lugar, tomamos el elemento medio. Aquí. En este caso son 16. Y ahora queremos buscar 23. Y nuestra matriz está ordenada, como dijimos. Entonces comprobamos si 23 es mayor a 16, entonces tomamos esta mitad. De lo contrario, ¿quién debería llevarse esta mitad? Ahora, como es mayor a 16, entonces ignoraremos todos los elementos aquí porque estamos absolutamente seguros de que se crea 23 luego todos ellos, ya que están ordenados. Y tenemos que revisar ahora para esta parte. Y tomamos la mitad de esta parte y hacemos lo mismo aquí. F2 y F3 es mayor a 56. No, no lo es. Entonces necesitamos tomar la izquierda. Pero, y comenzó a usar el medio como 23. Y encontramos 23 para devolver el índice cinco, en este caso. Por ahora. Y nuestro método. Vamos a crear un nuevo método, búsqueda binaria. Y tomará una matriz como de costumbre. Y el
índice bajo X. Así que X es el elemento a la sesión cuatro en esta lista. Y ahora necesitamos encontrar el medio y la profundidad. Y para ello, retrocedamos y veamos en este ejemplo, aquí tenemos bajo y alto a lo que hicimos son dos, restamos nueve menos 0 sobre 4.5 porque su entero, tomará cuatro. Y lo mismo aquí, que tomó 59 menos 54 sobre dos, que son dos más el índice bajo más cinco iguales a siete, siete fundamentalistas. Y lo mismo que hicimos aquí. Y volvamos atrás y pongamos la condición de que si alto es menor que la carga, entonces menor o igual al nodo de lo que hemos hecho. De lo contrario, deberíamos trabajar. Por lo que aquí es mayor de lo que funcionará la carga. De lo contrario, cuando
volvamos, no debemos volver minús1. Ahora, encontremos nuestro medio, como dijimos, es igual a bajo más alto menos bajo de un dos. Entonces este es nuestro metal. Si elemento metálico es igual a nuestra x es igual a dos aserción. Y entonces sólo regresaremos. De lo contrario, deberíamos revisar, como dijimos, volvamos aquí. En este caso tenemos 2323 es mayor a 16. Entonces trabajaremos con esto. Pero haremos los mismos sellos exactos y esta parte, lo contrario, deberíamos hacerlo pasos en este bug. Entonces para hacer eso, simplemente
comparamos en a a x. F en a es mayor que x, deberíamos devolver BinarySearch. Esto es lo mismo, pero bajo, y tenemos que cambiar cómo va minús1 medio. Estamos absolutamente seguros de que el medio viejo y todo el resto de los elementos del lado derecho mayor que S, entonces el no x de lo contrario volvería. Y búsqueda binaria para buscar el lado izquierdo. Entonces empezamos con el lado derecho, lo siento, el metal más uno todo el camino a alto y el mismo número x. Entonces esto es todo. Volvamos atrás e implementamos aquí. Y nuestro método principal, vamos a imprimir la búsqueda binaria en una 0 y menos uno y el número de búsqueda de números. Adelante y ejecutemos el código. Obtendremos menos 12, por ejemplo, seis. Y vamos a conseguir. Entonces el sexo está en la posición tres. Y esta es una búsqueda binaria. La búsqueda binaria es mucho más rápida que la búsqueda lineal. Ya que cada vez que estamos revisando la lista, estamos recortando a la mitad. No obstante, en búsqueda lineal, estamos obligados a pasar por todos los elementos de la lista. Todavía tenemos algunos algoritmos de búsqueda y hablaremos de ellos en los próximos videos.
23. Búsqueda de saltos: Al igual que la búsqueda binaria, saltos es un algoritmo de búsqueda para ordenar matrices. La idea básica es comprobar menos elementos que la búsqueda lineal saltando adelante por pestañas fijas o saltando algunos elementos en lugar de buscar todos los elementos de la lista. Entonces por ejemplo, considere que tenemos esta lista. Tenemos 16 elementos aquí. Supongamos que estamos buscando el número 55. Por lo que la búsqueda de salto encontrará el valor de 50 usando algunos pasos. En primer lugar, consideremos que el tamaño de bloque a saltar como para desde 16, raíz
cuadrada de 164. Por lo que en primer lugar, saltará del índice 0 al índice cuatro. Por lo que saltará al 01234. Saltar a este elemento en comparación con 5535 sigue siendo mayor que tres. Entonces saltaremos una vez más a cualquiera. Lo mismo aquí, 21 es menos de 55, entonces necesitamos saltar, saltará a 144. Y entonces podemos ver que 144 es mayor que 55. Por lo que volveremos al 21 y realizaremos una búsqueda lineal desde 21244 hasta encontrar nuestro elemento al número 55. Generalmente utilizamos la raíz cuadrada de longitud como el tamaño de bloque a saltar. Porque en el peor de los casos, este es el mejor tamaño de paso a dar. Entonces, empecemos con nuestro código. Saltar a los ij principales de entero y x que vamos a buscar en esta lista. Y aquí, en primer lugar, necesitamos almacenar la longitud del día. Tenemos que elegir nuestra pila. Y como dijimos, tomaremos la raíz cuadrada de n usando la masa. Y esta raíz cuadrada de masa, por ejemplo, supongamos que tenemos 17 elementos, nos
dan 14 ciertos números. Entonces después de tomar la raíz cuadrada de y formateamos usando Math.floor. Y luego ya que lo estamos almacenando en un entero para converger a ENT. Y si el elemento existe, entonces necesitamos encontrar un bloque donde el elemento esté presente. Entonces volvamos a nuestro ejemplo. Y él 55 está entre 2144. Por lo que necesitamos encontrar estos dos elementos. Y ya tenemos un entero. Creamos otra entidad o vamos a llamarla, por ejemplo, anterior, líquido a 0. Entonces al principio, el anterior es igual a 0, por lo que está en la posición 0 y el paso está en la posición cuatro. Y si el elemento no se encuentra en este intervalo, entonces deberíamos dar previo el valor de cuatro. Por lo que anterior está ahora en la posición cuatro y necesitamos sumar cuatro al paso. Por lo que paso estaría en la posición ocho y continuar hasta que encontremos nuestro elemento en este intervalo y nuestro intervalo. Entonces para hacer eso, necesitamos crear un bucle while y establecer el bucle salvaje como en a es menor que x. ahora, podríamos llegar a un punto donde si seguimos agregando cuatro, el paso, podríamos haber pisado mayor que n, entonces no podemos acceder a medio paso. Entonces en lugar de acceder a matriz de paso que dice un radar mínimo entre paso y, y. Por lo que cada vez que
ejecutamos este bucle, necesitamos cambiar previo al nuevo valor. Y lo mismo para paso crear para agregar. Lo que sea que tengamos aquí. Por lo que agregó. Y entonces vamos a conseguir anterior es mayor que o igual a. Y entonces estamos terminados. No encontramos al animal que simplemente regresa minús1. Y él deberíamos cambiar a entero. Ahora. Entonces lo que estamos diciendo aquí en este bucle while, usémoslo en este ejemplo. En primer lugar, tenemos previo igual a 0 y paso igual por posesión. Para. Ahora. Pasamos por este bucle while. En primer lugar, comprobaremos array de mínimo entre paso y luego paso es seguramente menor que n. En este caso, paso es igual a cuatro. Por lo que las matemáticas a un de cuatro, que es tres. En este caso, comprobaremos si tres es menor que x. Sí, entonces seguiremos ejecutando esto mientras bucle cambiará los valores. Ahora, el anterior es igual a cuatro y el paso es igual a ocho. Y luego comprobaremos si pasamos los límites. Si anterior es mayor que o igual a n, Entonces pasamos los límites y lo hicimos, no
encontramos ningún número que coincida con actos. Entonces ahora estamos en la posición cuatro. Y la posición ocho. Lo mismo. Comparamos este 21 con 5521 es menor a 55 y
necesitamos ejecutar el bucle while una vez más anterior está ahora en la posición ocho. Por lo que esta es posición para esta ayuda de posición. Y paso está en la posición 12. En este caso, tenemos 144. Así que comparar ciento cuarenta y cuatro, cincuenta y cinco años menos de un 144, entonces saldrá del bucle. Teniendo previo el valor de ocho y paso el valor de 12, entonces tenemos nuestro intervalo y 55 está en este intervalo. Ahora, después de salir del bucle while, necesitamos realizar una búsqueda lineal de x e y otro bucle while. Entonces mientras nos sentamos con el anterior, ahora como el anterior está en la posición ocho y el paso está en la posición ciento cuarenta y cuatro y cincuenta y cinco, lo que mostró que receptor es indistinto tercer intervalo, entonces vamos empezar con 21 y continuar. Tan ancho llevar al anterior es menor que x, entonces vamos a incrementarnos en uno. Y si llegamos a un punto donde anterior es igual a cualquiera de los dos pasos, igual a 12 sobre n, Así igual al mínimo entre los dos enteros, cualquiera de los sellos. Y entonces necesitamos romper o devolver minos1 simplemente puede regresar menos uno. En este caso, ya que no encontramos nuestro número. Y luego comprobamos si encontramos el elemento. Entonces si array anterior es igual a x, entonces regresamos esta posición y regresamos menos uno. Si morimos, no lo encontramos. Entonces esto está aquí. Tenemos un adder no puede converger de n booleano, tenemos un igual faltante. Entonces esto es todo, esta es nuestra función. Y sigamos adelante y elijámoslo aquí. Entonces imprimiremos trozo y buscaremos 55. Entonces tomemos esto y los pongamos en nuestra matriz. Entonces esta es nuestra matriz y devolverá diez. Por lo que el 55 está en la posición diez. Por lo que estas dos primeras líneas eran de las funciones pasadas ahora esta hora que nuestra posición donde 55 está en esta lista. Entonces esto es todo para saltos. Nos vemos en el siguiente video.
24. Búsqueda de interpolación: Y otro algoritmo de búsqueda como búsqueda de interpolación. búsqueda de interpolación funciona mejor que la búsqueda binaria. Porque la búsqueda binaria siempre comprueba sobre una base de elemento medio. Pero la búsqueda de interpretación puede ir a diferentes ubicaciones de acuerdo al valor de P a buscar. Entonces por ejemplo, si queremos buscar el número tres y esta lista, si usamos la búsqueda binaria, iremos y
comprobaremos en el medio. Entonces o bien 1321034, por lo que este es el medio de la lista. No obstante, si utilizamos la búsqueda de interpolación irá al valor que esté más cerca de nuestro número utilizando una fórmula específica y hablaremos de ello más adelante. Por lo que él tres está más cerca de 0 de lo que está más cerca de 610. Por lo que nuestra fórmula nos llevará a un número entre estos. Entonces la misma idea que la búsqueda binaria, pero en lugar de tener un elemento medio, vamos a tener una posición que va a cambiar de acuerdo a nuestros elementos. Entonces sigamos adelante y creemos nuestro método público. Vamos a llamarlo interpolación. Y como suele tomar una matriz de elementos y el tamaño del elemento, así
como la t o let say x. Ahora, necesitamos establecer nuestro bajo y alto y bajo igual a 0 y será y minos1. Ahora entraremos a nuestro bucle while. Bajo es menor o igual a i De lo contrario ya no necesitamos trabajar porque no encontramos nuestro elemento. Entonces es lo mismo que hicimos en búsqueda binaria. Y tenemos que sumar algunas condiciones. Si bien nuestro elemento x es menor o igual a, nuestro bajo es mayor que o igual, lo siento, y es menor o igual a nuestro elemento. Por lo que mientras se satisfagan estas condiciones, podemos trabajar aquí. Ahora, cada vez que llegamos a un punto donde nuestro bajo es igual a nuestro alto índice, entonces esto significa que lo hemos hecho o bien encontramos el elemento o no. Entonces comprobaremos si agrego lo mismo ya que son iguales, es igual a nuestra x. y este es el caso volver bajo, de lo contrario, volver minús1. Y después de revisar esta condición, ahora podemos trabajar, podemos crear nuestra fórmula esa misma posición que saltará. Al igual que hicimos en nuestra búsqueda binaria, creamos una posición llamada elemento metal. Cada vez que vamos al elemento medio ahora, creamos otro entero llamado posición. Y la fórmula es la siguiente. Es así como calculamos la interpolación. Y a de alta menos baja. Entonces lo multiplicamos con yo lo haría x menos a de carga. Y ahora comprobamos si un rayo en esta posición es igual a nuestro elemento, entonces sólo regresamos nuestra posición. De lo contrario, comprobaremos que un en esta posición sea menor que nuestro elemento. Entonces necesitamos cambiar nuestra baja de la posición baja a la alta más una. Lo mismo que hicimos y en búsqueda binaria, pero en lugar de posición, usamos método de lo contrario será posición menos uno. Entonces de lo contrario, si el que
tenemos en una posición es mayor que x, entonces du sería igual a posición minús1. Y después de terminar esta condición y todo, el bucle while, podemos regresar menos uno si no encontramos el entero. Y ahora volvamos a usarla aquí. Por lo que imprimo la interpolación. Tenemos el a y B y x será el número. Entonces, por ejemplo, supongamos para una búsqueda de b. Y sigamos adelante y corremos. Nuestro código. Obtendrá para SO tres está en la posición 401234. Esto cambia este número a 89 y obtendremos la posición 11. Por lo que el 89 está en la posición 11. Y lo último que vamos a comprobar si ingresamos un número que no está en esta lección, 900, obtenemos menos uno. Entonces esto es todo para la búsqueda de interpolación. Nos vemos en el siguiente video.
25. Búsqueda exponencial: El último algoritmo de búsqueda del que vamos a hablar es la búsqueda exponencial. La búsqueda exponencial implica dos pasos. En primer lugar, necesitamos encontrar un rango donde el elemento esté presente. Y luego haremos búsqueda binaria en lo extraño. Entonces consideremos esta lista. Tenemos 16 elementos y necesitamos encontrar, por ejemplo, 89. Entonces lo que vamos a hacer es, en primer lugar, considerar si nuestro número es igual al primer elemento de esta lista. Si este es el caso, entonces regresamos 0, por lo que está en la posición 0. De lo contrario, comprobamos todos los demás elementos. Empezamos con i igual a uno y con doblete igual a dos, luego yo igual 24816 y así sucesivamente. Y sigamos adelante e implementados para entender mejor esto. Ve aquí y tienes estática pública, y llamémoslo exponencial. Como de costumbre, toma una matriz de enteros y, y, y el valor que vamos a buscar, lo
nombramos x aquí. En primer lugar, como dijimos, necesitamos comprobar si en el índice 0, si el valor está en el índice 0, entonces simplemente devolvemos 0. De lo contrario, necesitamos encontrar el rango para la búsqueda binaria mediante duplicaciones repetidas. Entonces definiremos un entero con el valor de uno. Y entramos al bucle. Si bien i es menor que n, la longitud de la matriz. Y añadir un, i es menor que nuestro, menor o igual a nuestro número. Este bucle será ejecutado. Por lo que simplemente multiplicaremos i por dos. Por lo que cada vez que
entramos a este bucle, multiplicamos i por dos. Entonces veamos aquí en este ejemplo, cuando podemos salir de este bucle. Por ejemplo, si queremos buscar el número 13, primer lugar, comprobamos si 0 es igual a 13. No, no lo es. Entonces definimos i igual a uno y entramos en este bucle. Yo es igual a uno, voy a comprobar. Si bien yo a, a i es menor o igual a x, uno es menor o igual a 13. Sí, entonces multiplicamos i por. Entonces ahora tenemos yo igual a dos, y vamos a ir a nuestro siguiente elemento. Aquí tenemos también uno, es menos de 13 e i es menor que n. Entonces multiplicamos i por 21 tiempo más. Ahora tenemos dos veces 24201234. Ahora, aquí comprobamos el es menor a 13. Por lo que podemos multiplicar una vez más a cuatro veces 28. Entonces ahora somos 5678, estamos en 21. Ahora. Revisaremos 21 es menor a 13. No, no lo es. Entonces. Salimos del bucle con i igual a ocho. Ahora tenemos yo igual a ocho. Y para conseguir nuestro intervalo, tenemos i igual a ocho e i igual a cuatro, que es ocho dividido por dos. Entonces después de encontrar nuestro intervalo aquí, simplemente
usamos la búsqueda binaria. Y trabajo en a. Y aquí tenemos yo dividida por dos. Este es nuestro intervalo y mínimo entre i y uno, i y n Ya que podría ser, podría ser que i es mayor que n y no podemos trabajar fuera de nuestros límites. Y aquí tenemos nuestro entero x. Y como necesitamos devolver el tipo, por lo que simplemente giramos la búsqueda binaria. Y luego terminamos. Adelante y usémoslo aquí. Entonces vamos a seguir adelante e imprimir exponencial en array.length y w Vamos a buscar, por ejemplo, 13. Y el código conseguirá siete. Por lo que 13 está en la posición siete. Entonces hagámoslo mejor, más bonito. Y exponencial. Vamos a almacenarlo como exponencial y como un entero. Por resultado íntimo es igual a esta exponencial. Si el resultado es mayor a 0, entonces imprimimos el elemento está presente en índice. Y imprimimos el índice. De lo contrario, imprimimos ese elemento no está presente. Y Ray y agrupar el código obtendrá elemento está en el índice siete. Ahora tenemos un atajo en Java que puedes usar. Entonces, en lugar de escribir todos estos, simplemente
podemos imprimir una de las dos líneas. Por lo que necesitamos establecer aquí la condición si el resultado es menor a 0, este es el caso. Podemos imprimir. Elemento no está presente. Y la otra afirmación sería elemento está presente, índice. Y imprimimos el índice. Entonces sigamos adelante y veamos qué habría sido aquí. Vamos a ejecutar el código y obtenemos elemento está presente y el índice siete. Por lo que este atajo, En primer lugar, el método NDA System.out.print. Establecemos la condición tu resultado es menor a 0. Entonces automáticamente este método imprimirá la primera sentencia. De lo contrario, imprimirá lo que haya después de los dos puntos aquí. Por lo que les preguntamos si hay acto es menor a 0, sí, imprimir esto. De lo contrario. Imprimir esto. Esto es muy útil si no queremos complicar las cosas y necesitamos una forma de impresión muy sencilla. Entonces esto es para buscar algoritmos. Nos vemos en el siguiente video.
26. Problema adicional: herencia: Ahora que terminamos con nuestro material, sigamos adelante y resolvamos algunos problemas extra. Y comienzas con la herencia. Creará la cuenta bancaria. Por lo que ya creé un paquete llamado BankAccount. Dentro de este paquete, tendremos nuestra clase de padres, nombrelo, cuenta bancaria. Y tenemos dos tipos de cuentas. Contamos con una cuenta de ahorro y una cuenta de cheques. Entonces sigamos adelante y creemos dos nuevas clases. El primero lo nombramos chequeo, y el otro será cuenta de ahorros. Y por supuesto necesitamos crear nuestro método principal. Este es nuestro método de buzo, y creamos nuestro método principal. Ahora, las dos clases, cuenta
bancaria y justo lo mismo se extiende cuenta bancaria. Ahora volvamos a nuestra cuenta bancaria y creemos aquí algunos métodos. En primer lugar, tenemos una variable. Es nuestro equilibrio. Entonces vamos a referirnos a él como w protegido y vamos a crear un constructor. Y luego usaremos nuestros métodos. Por lo que saldo de cuenta bancaria. Y decir ese equilibrio al equilibrio. Ahora, Jaffa nos permite tener el mismo nombre aquí. Y en este caso, tenemos que hacer es referirnos a esta variable local. Tenemos que usar eso. Y ahora nos referimos a éste fuera y este equilibrio es el del parámetro. Ahora, vamos a crear nuestro método. Tenemos el equilibrio tripa público. Www2 obtener equilibrio simplemente regresará. Otro método, por ejemplo, para retirar nulidad con un número específico. Nosotros iríamos específicos y simplemente restaríamos esta cantidad a la dependencia. Y otro método si queremos sumar una cantidad específica. Por lo que simplemente agregamos a la balanza. Ahora trabajemos en nuestra cuenta de ahorros. Por lo que en cuenta descendente tenemos un interés. Entonces, en primer lugar, vamos a crear nuestra cuenta de ahorros de constructor. Y obtuvimos el apoyo de nuestra clase de padres con nuestro saldo. Y para sumar los intereses, necesitamos tener una tarifa. Entonces vamos a crear un vinilo protegido y nomenclatura. Y dijimos la tasa en 0.04. Ahora vamos a crear nuestro método a nuestros intereses, interés público vacío, y simplemente usaremos el método para crearlo en nuestro depósito de cuenta bancaria y para agregar nuestro interés, que es fecha veces nuestro saldo. Ahora, pasemos a nuestra cuenta de cheques. Y nuestra cuenta de cheques. En primer lugar, creemos nuestro constructor y luego hablemos de los métodos. Por lo que en nuestro construido como vives, cheque público, saldo de cuenta. Y llamaremos al super y a la penitencia. Ahora, cada vez que retiramos o agregamos una cantidad a nuestra cuenta, tenemos un feed que necesitamos pagar. Entonces vamos a crear algunos enteros, algunas variables fuera. Para. El primero es solo para mantener el recuento de cuántas veces usamos nuestra cuenta ya sea para retirar, para salir a para agregar una cantidad específica. Tan protegido y conteo de secciones. El otro es en primer lugar, tenemos que liberar tiempos comenzaron a retirar o agregar una cantidad gratis por dos veces. Por lo que las dos primeras veces, nos retiramos en su totalidad libre. Entonces vamos a crear nuestro entero finito y nombrarlo 32. Y el último será turbulento. Y este es el campo que hay que pagar después de pasar las 23 veces. Entonces vamos a nombrarlo v igual a 0.25. Ahora, tenemos que establecer I conteo de transacciones en 0 igual a 0. Por lo que utilizas el método go y depósito. Tenemos que anularlos. Por lo que aquí tenemos nuestro depósito y retirar. Por lo que ya llamaron a la fila de ancho de super punto. No necesitamos hacer estos pasos aquí. Simplemente necesitamos hacer un seguimiento de nuestro conteo de transacciones. Por lo que cada vez que ingresamos a este método, simplemente
incrementamos el recuento de transacciones en uno. Y lo mismo aquí. Ahora, este es nuestro método y el último método que vamos a crear es el método para deducir las cuotas. Entonces, llamémoslo. Y este método simplemente comprobará si el recuento de transacciones es mayor que dos. Entonces tenemos que sumar algunas tarifas. De lo contrario, simplemente restablecemos el contador. Establecemos la tarifa de transacción, ese recuento de transacciones en 0. Transacción centro es mayor que antígeno afuera, lo
nombramos tres es mayor que tres. Entonces deberíamos conseguir el w. Vamos a darle el nombre. Cuota. Y sería igual a transacción 23 veces. Y multiplicado por v Lo nombramos afuera. Entonces supongamos que aquí tenemos IED. Ahora, después de obtener esta variable sólo la retirará de L. Así que estos son nuestro método. Ahora vamos a crear dos método de cadena para nuestra clase de cuenta bancaria. Aquí. Contamos con String público ToString y simplemente imprimiremos con saldo de giro. Nuestro equilibrio es nuestro equilibrio. En nuestra cuenta de cheques. Llamaremos, llamaremos súper. Entonces vamos a crear una cuerda y llamarla resultado, que almacenará nuestra fuerza. Y luego una línea e imprimir nuestros conteos. Por lo que aquí podemos agregar nuestro conteo de transacciones y simplemente devolver resultado ahora y nuestra cuenta de ahorro. Anulemos el método toString. Entonces tendríamos que anularlo. Y la cadena sería igual a super dot toString. Y Añadir a este resultado, alinear y devolver el resultado. Y luego iremos a nuestro método principal y crearemos una cuenta de cheques y cuenta de ahorros. Cuenta corriente, démosle un nombre, a ver. La violencia podría ser 1000. Y la cuenta de ahorro S igual a nuevos ahorros para desterrar sería de 10 mil. Usemos algunos de los métodos. Por lo que c punto con Joe iría 150. Y luego esta palabra sin guardar cuenta como punto con TO 2003. Después de eso. Usemos como. Entonces adelante e imprima la cuenta corriente con nuestro C. Y vamos a
imprimir la línea. Después cuenta de ahorro. Y imprimimos s con una línea. Y luego usaremos nuestro método y lo veremos, veremos, deduciremos e imprimiremos una vez más. Y sigamos adelante y llevemos a cabo un saldo de cuenta corriente, ahorrando saldo de cuenta con tasa de conteo. Y se puede ver que el saldo aquí es el mismo ya que a pesar de que usamos datos, pero contar es igual a dos. Entonces usemos y el método una vez más. Por ejemplo C, depositar cualquier cantidad, por ejemplo 20. Y veremos que a pesar de que depositamos y sumamos 20, nuestra Vanessa ahora es un 169.735, deducimos 0.250 p. Entonces esto es todo para este ejemplo a ustedes en el siguiente.
27. Sequence de Fibonacci: Ahora vamos a hablar de secuencia de Fibonacci y para resolverla usando tres métodos. En primer lugar, la secuencia de Fibonacci es la serie de números en la
que se encuentra el siguiente número sumando los dos números que tiene ante sí. Entonces déjame seguir adelante y escribirlo aquí. Los dos primeros números son 01, luego agregamos 0 más 111 más 121232 más 35, y así sucesivamente, 8132134 y así sucesivamente. Entonces esta es la idea de esta secuencia. Ahora, sigamos adelante y resolvamos recursivamente, iterativamente y usando la clase Big Integer. Hablaremos de la clase Big Integer más tarde. Entonces, antes que nada, vamos a resolverlo iterativamente. Entonces vamos a crear un método, estática
privada que esté predeterminado a lo largo, por ejemplo. Y digámoslo, sintió TI. Eso tomará un entero y la posición. Y lo que debemos devolver es el número en la posición especificada. Entonces, por ejemplo, si entramos cinco, deberíamos devolver 01235, debiéramos devolver tres. Si entramos siete, deberíamos devolver ocho, y así sucesivamente. Ahora, como dijimos, en primer lugar, vamos a crear un entero y darle un valor. Y el valor en 100. Y necesitamos agregar el elemento anterior es igual a 0 al principio, h igual a uno, y el anterior anterior, anterior, anterior, anterior xi es igual a 0. Ahora, creamos un bucle for con, comenzamos con i igual a dos y
menor que o igual a n. Y ahora, cada vez que entramos a este bucle, agregamos a la solución anterior, anterior, anterior. Ahora tenemos que cambiar nuestros dos valores aquí. Por lo que anterior anterior tomará el valor de anterior, anterior, anterior, anterior. Previous tendrá con el valor de la solución. Ahora, acabamos de devolver este número después del bucle for. Entonces sigamos adelante y creemos nuestro método principal. Aquí. Contamos con nuestro método principal y utilizamos esto. Por lo que imprimimos Fibonacci iterativamente duración. Y acabaremos de imprimir el TPIY con el valor. Y vamos a pedir al usuario que introduzca el valor. Entonces escáner escaneo, escaneo. Por favor ingrese un número, y almacenaremos ese número el próximo n. y lo daremos como parámetro aquí. Ahora, si seguimos adelante y ejecutamos este código, se obtendrá, por favor ingrese un número. Supongamos que entramos cinco, obtenemos la iteración Fibonacci 568, y así sucesivamente. Y por ejemplo, obtenemos 55. Ahora, usemos la recursión. Entonces sigamos adelante y creemos otro método, método, privada Karen para darle un valor. Y como
dijimos, necesitamos crear nuestro caso base. Caso base si n es igual a uno o 0, deberíamos terminar. De lo contrario, deberíamos devolver Recursión de
Fibonacci de n menos uno más Recursión de Fibonacci de N menos dos. Por lo que los dos últimos elementos. Y sigamos adelante y ejecutemos este código. Úsalo en nuestro método principal. Entonces imprimimos al nazi. Porque plus. Y ejecuta este código. Obtenemos un número, por ejemplo, sexo, ayuda de iteración
Fibonacci, y el mismo resultado que usamos el método de recursión. Ahora, el último método usará como entero grande. Por lo que usaremos la clase Big Integer. Por lo que esta clase se utiliza generalmente para la operación matemática que implica cálculos enteros
muy grandes que están fuera del límite de todos los tipos de datos primitivos disponibles. Por ejemplo, factorial de un 100 contiene un 158 dígitos. Por lo que podemos almacenarlo en cualquier tipo de datos primitivos disponible. Podemos almacenarlo y este gran entero y utilizar los métodos y el entero discreto plus. Entonces ahora vamos a crear nuestro método usando MC entero será una estática
privada con el valor de entero rápido. Por lo general regresamos pertenecido o entero o cadena, ahora devolviendo Big Integer y solo nombre. Y el valor de n. como de costumbre. Ahora, lo mismo, haría lo mismo que hicimos en nuestro método de iteración. Entonces. En primer lugar, necesitamos almacenar la solución. El valor del entero grande, vamos a nombrarlo. Solución igual a gran punto entero 0. Entonces así es como almacenamos 0. Y la solución. No decimos solución Big Integer, solución igual a 0. Decimos números enteros grandes. Ahora, lo mismo para anterior, anterior, anterior. Tan grande entero, anterior igual a entero grande. Pero uno y Big Integer anterior, anterior, gran entero, 0. Ahora comenzamos con nuestro bucle for y comenzamos con dos y terminamos con n igual a n. y la solución será anterior, anterior, anterior, anterior, anterior, anterior, anterior. Y entonces anterior ahora sería igual a nuestra solución anterior y anterior. Y entonces simplemente regresaremos solución. Entonces esto es todo. Y ahora imprimamos system.out.Print entero número de
parámetro
entero. Vamos a ejecutar el código. Y vamos a conseguir 556, obtenemos ocho. Ahora por ejemplo, si usamos un gran número como 10 mil, podemos ver eso porque va a tomar algún tiempo. Y si usamos un 100 mil conceden que genera un error. No obstante, si solo usamos esta clase Big Integer, e ingresemos este número. Se puede ver que 20 muertos esta secuencia. Y es un muy grande, No realmente, no poder almacenarlo en cualquier tipo de datos primitivo. Entonces, por eso utilizamos la clase Big Integer. Ahora, esto es todo para Sequence de Fibonacci. Utilizamos tres métodos y aprendimos una nueva clase sobre una nueva clase, la clase Big Integer.
28. Clase de gran Integer: Ahora hablemos de clase Big Integer. Ya hablamos de ello y de Fibonacci, pero lo explotará más. Por lo que esta clase está disponible para nosotros en clase de Java a matemáticas. Y en primer lugar, vamos a crear nuestro gran entero, capturado este Big Integer favorito uno igual a uno. Por lo que ahora le estamos dando a este objeto un valor de 1. En primer lugar, vamos a computar el factorial del código por ejemplo. Entonces démosle el nombre. Y creamos nuestro for loop dos, el inicio de 12 todo el camino a. Y cada vez que pasamos por este for loop, multiplicamos dos enteros grandes. Tenemos un método, gran punto entero se multiplican y se multiplican por gran valor entero de i. Y luego vamos a seguir adelante e imprimir el área de más grande entero. Ejecuta el código. Se obtiene factorial de 24. Ahora usemos otros métodos. Tenemos. Por ejemplo, vamos a crear otro objeto, Big Integer, big integer, dos. Nuevo entero grande con el valor de un 197. Ahora, vamos a usarlo método confirmado y obtener el mínimo entre los dos objetos. Entonces vamos a imprimir
creo que el gran T2. Y ahora obtenemos el mínimo entre los dos valores. Obtenemos 24. Y si usamos el entero grande de Macs,
entero para obtener un 197. Ahora, por ejemplo, si queremos conseguir el siguiente número primo mayor a 197. Por lo que podemos usar este método. Entonces imprimamos el siguiente número primo. Al lado de un 197 es, y utilizar gran Instituto a próximo probablemente prime. Y obtenemos el siguiente prime y es un 199. Ahora, todavía tenemos muchos métodos y usamos algunos de ellos. Por ejemplo, tenemos el anuncio. Entonces si decimos números enteros grandes, el entero dos, y vamos a empezar en gran nombre entero. Llamarlo edición igual a ésta, y luego imprimir edición llegará a un 121. Entonces el método de descanso vamos a usar el toString. Por lo que este método devolverá la representación de cadena decimal del entero grande. Para que podamos almacenarlo en una cuerda. Vamos a llamarlo igual a entero, uno a cadena. Y así ya tenemos n aquí, por lo que necesitamos elegir un nombre de cruncher numérica, nombre de plantilla. Ahora, si imprimimos nombre, obtendrá 24 y nombre punto CharAt 0, por ejemplo, se pondrá también. Entonces convertimos este gran entero en una cadena y ahora podemos manipular sus personajes. Entonces esto es todo para la clase Big Integer. No lo usamos tanto cuando se trata de pequeños enteros. Y aún tenemos muchos métodos. Son tan útiles y podemos usarlos en nuestro código. Para que puedas explorarlos por tu cuenta. Y ahora nos vemos en el siguiente video.
29. Problemas de extra: recursión de recursión: Ahora sigamos adelante y resolvamos algunos problemas usando recursión. Entonces el primer problema que vamos a resolver es cambiar x viejas y una cuerda, demasiado sabia para considerar. Tenemos un código de ejemplo X. Entonces necesitamos cambiarlo a adeudado por lo mismo. Por ejemplo, x x, x. Necesitamos cambiarlo a y,
y i por la luz. Y no lo haría eso sin usar bucles. Entonces vamos a crear nuestro método, público estático. Y en caso de que se vuelvan quedando este nombre, cambien x, y, y se pondrá en pie. Eso es ahora necesitamos pasar por los animales,
los personajes de la cuerda. Y en primer lugar, necesitamos comprobar si esta cosa, nuestro caso base es si la cadena es de longitud 0, entonces terminamos. No tenemos ningún personaje. Por lo que comprobamos SDR esa longitud. Si SDR ese tiempo es igual a 0, entonces simplemente devolvemos una cadena vacía. De lo contrario, necesitamos trabajar. Ahora, lo primero que tenemos que hacer es comprobar si el primer carácter de nuestra cadena es x. Si este es el caso. Si SDR está en z es igual a x, entonces tenemos que hacer algo. Y necesitamos regresar X y convertidos a y. entonces deberíamos regresar y plus. Ahora, después de terminar sin primer personaje, necesitamos hacer lo mismo para el resto de los personajes. Ahora, en este ejemplo, digamos, digamos que tenemos x, x, x. Entonces lo que debemos hacer aquí es comparar esto con x. Si este es el caso, entonces necesitamos convertirlo a i Ahora tenemos Y y algo. Ahora, después de terminar con el primer personaje, necesitamos hacer lo mismo con el resto de los personajes. Entonces necesitamos ingresar este método una vez más y comprobar si este personaje es X. Ahora necesitamos convertirlo a, así que dejaremos que la recursión lo haga. Simplemente lo llamamos el método en sí con una nueva cadena, que es subcadena desde una hasta el final de la cadena. Ahora, cuando lleguemos al punto donde sólo tenemos un elemento en la cadena, entonces esto generará un error. Porque cuando la cadena sólo tiene un elemento, un carácter, y estamos diciendo que necesitamos todos los elementos después del primer carácter. Entonces para lidiar con eso, necesitamos establecer la condición STR, esa longitud es igual a una. Entonces simplemente deberíamos regresar. ¿ Por qué? De lo contrario, deberíamos devolver el método de cuota y más una vez más. Ahora, esto es para gráfico estándar en 0 igual a x. De lo contrario, necesitamos hacer otra tarea. Entonces si SDR longitud de punto igual a uno, simplemente
regresamos STR a 0. De lo contrario, regresamos stdio.h yo que cito el método una vez más. Y sí, esa subcadena, subcadena de un extremo de la cadena. Y ahora necesitamos convertirlo en una cadena. Por lo que simplemente agregamos cadena aquí. Y ahora terminamos con este método. Sigamos adelante y lo usemos en nuestro método principal. Este es nuestro método principal. Y vamos a pedir al usuario que nos proporcione la cadena, por favor y la almacene. Una cadena llamada nombre. Después usa este método e imprime el resultado. Entonces cambia x, y con nuestro nombre. Vamos a ejecutar el código esto en una cadena. Por ejemplo, x x x x, y, y, y.
Y si no tenemos ninguna x, aquí, por ejemplo, nos ponemos alto. Ahora pasemos a otro ejemplo sencillo. El precomputado, el poder de n. Por ejemplo, si tenemos 32, entonces esto es, como estamos diciendo, que necesitamos, que queremos t al poder de dos sobre tres a la potencia de 45 y así sucesivamente. Por lo que es muy sencillo. Vamos a crear nuestro método. Y devolverá un maestro para tomar dos enteros, y, y, y. Y. Y yo basaría caso, si n es igual a y 0, entonces simplemente devolver uno. De lo contrario, deberíamos devolver nuestros
tiempos base nuestra base con una minús1, ya que multiplicamos base. Y sigamos adelante y lo usemos aquí. Consideremos, por ejemplo, n igual a cinco y n igual a tres. E imprimir con base. Y luego vamos a ejecutar el código. Y nosotros conseguimos, tú te llevas un 125. Ahora, pasemos a otro ejemplo. Y este ejemplo, usaremos enteros o una matriz de enteros. Entonces supongamos que tenemos esta lista, de uno a 20. Entonces aquí tenemos dos y luego le siguen 20, que es dos veces diez. Y tomemos otro ejemplo, 14315 y comamos lo mismo. Tenemos tres multiplicados por diez, obtenemos. Por lo que a tres le siguen 13. Ahora, nuestro código debe devolver verdadero si
tenemos dos elementos y si multiplicamos el primero por diez, entonces obtenemos el segundo. Entonces aquí regresamos verdad aquí. Y por ejemplo, 12345 debería regresar. Sigamos adelante y escribamos nuestro código. La estática pública debe devolver un booleano. Y llamémoslo. Por ejemplo, múltiple. Y tomará un valor. Enteros tiene un límite en a y el número. Y este número es el índice que vamos a utilizar el pase por nuestra matriz. Y ahora empecemos. Entonces, en primer lugar, si entonces dx es igual a la array.length min.1, entonces pasamos toda la matriz y no encontramos dos elementos que coincidan con nuestra condición. Y en este caso, deberíamos devolver falso. Entonces este es nuestro caso base. De lo contrario, deberíamos trabajar. Ahora bien, si el índice es menor que un día, longitud menos uno, entonces podemos trabajar. En este caso, comprobaremos que si array en marca de tiempo del
índice es igual a array en el índice más uno, entonces deberíamos, deberíamos devolver true. De lo contrario, necesitamos volver a llamar al mismo método con e incrementarlo. Por lo que múltiplo tenía un índice
y más uno. Ahora bien, este no es el caso, entonces simplemente regresamos. Entonces veamos qué hicimos aquí en este caso. En primer lugar, obtenemos, por ejemplo, usemos esta matriz. Y al principio será 0. Entonces n dx no es igual a esa longitud menos uno. Entonces entramos a este bloque y aquí comprobaremos si índice es menor que array.length uno es uno. Este es el caso. Entonces deberíamos comprobar si el índice de matriz por diez. Entonces si una vez diez igual a diez es igual a cuatro, no, entonces deberíamos llamar al método una vez más. Y ahora nuestro índice se incrementa en uno. Entonces aquí nuestro índice sería cuatro y luego que también es cuatro veces diez igual a tres. Ahora, que nuestro índice estará en posición, en esta posición. Y hacemos lo mismo. Tres veces diez es igual a 30. Ahora nuestra condición está satisfecha. Entonces no necesitamos volver a hacer este método. Por lo que sólo volveremos verdad. Ahora en este caso, por ejemplo, si usamos esta lista, entonces no encontramos ninguno,
entonces cualquier elemento que coincida con nuestra condición aquí. Por lo que sólo seguiremos ingresando el mismo método hasta que el índice sea, eventualmente estará en array.length minos1 y regresaremos falso. Entonces este es nuestro método y sigamos adelante y lo usemos en nuestro método principal. Por lo tanto, permítanme comentar estos. Y vamos a imprimir múltiplo y crear un igual a, por ejemplo, 12355310. Y en este caso, que se utiliza este método con esto a una y 0. Veamos qué va a pasar. Se hará realidad. Ahora si eliminamos 15 obtendrá flujos. Entonces esto es todo. Algunos ejemplos sencillos sobre recursión. Nos vemos en el siguiente video.
30. Ordenación de la mat: Ahora volvemos a nuestros algoritmos de clasificación. El rareza los probó con matrices de enteros. Ahora, usaremos matrices de cadenas. Entonces aquí, un método principal. Vamos a crear una matriz de cadenas. Escalar nombres, y sería igual a algunos nombres. Por ejemplo, Alix y prensa. Entonces esto es que yo enumeraría. Ahora sigamos adelante y usemos la inserción. Entonces vamos a nombrarlo público estático, vacío, inserción de matrices, matrices de cadenas, les llamó nombres. Entonces es lo mismo que hicimos para enteros con alguna variación. Por lo que empezamos con nuestro for loop en i igual a uno. Y necesitamos definir nuestra fuerza es igual a los nombres en i y j sería igual a i menos uno. Ahora entraremos a nuestro bucle while. tanto que j es mayor o igual a 0. Y usaremos un método disponible para nosotros. Y es clase String en Java. Esto se descompone a, vamos a comparar la clave con otra cadena. En este caso, se nombró en j. Si es menor a 0, entonces necesitamos canjearlos. Necesitamos crear una cadena denominada como de costumbre, darle el valor de nombres,
nombres de j más uno, y nombres de j más uno. Tomamos el valor de la amortiguación. Ahora. Entonces este es nuestro método y sigamos adelante y lo usemos en nuestro método principal. Y buscar y con nombres. Y luego el bucle for para imprimir nuestros elementos. Imprimimos dirigido más espacio. Vamos a conseguir a Alex, Chris, y James así están ordenados ahora. Por lo que utilizamos, en comparación con este método está disponible en la clase String. Y usamos eso. Tenemos el mismo método aquí. Pero en lugar de comparar con este signo, usamos el método compare en la clase String y Java. Ahora usemos la clasificación de selección. Entonces sigamos adelante y copiarlo sin escribirlo una vez más. Ordenar por selección, y lo modificaremos aquí. Entonces sigamos adelante y lo modificamos. Ahora. Te tomas una fuerza. Y aquí fijamos mínimo es igual a lo haré. ¿ De acuerdo? Y si necesitamos usar el método CompareTo, las dos cadenas. Y luego finalmente, tenemos un array de cuerdas que en comparación con gay y mínimo, debe ser menor a 0. Y luego terminamos. Volvamos aquí y lo usemos. Entonces en lugar de usar la inserción, imprimamos la clasificación de inserción. Y podría realizar selección son nombres e imprimirlos. Ahora ya ordenamos nombres, así que vamos a crear otro en a. llamémoslo nombre. Dos serán iguales a nombres y lo usarán aquí. Selección para que aquí. Adelante e imprimámoslos. Vamos a conseguir, sólo tenemos que imprimir una línea aquí. Y el código una vez más para conseguir la inserción. Entonces, esta es nuestra salida y selección, por lo que obtendría la misma salida. Entonces esto es, este, este video es solo para mostrarte que puedes usar estos algoritmos de clasificación no solo para enteros, sino para la fuerza. Y puedes usarlos también para personajes. Por lo que puedes seguir adelante y apretar usando caracteres en lugar de cadenas o enteros. Y no sólo la técnica de clasificación, sino que también se pueden utilizar los algoritmos de búsqueda con cadenas y caracteres a esto es para ordenar y buscar algoritmos? Nos vemos en el siguiente video.
31. XML: Hola y bienvenidos de nuevo. Y en este video vamos a hablar de XML y cómo extraer datos de XML usando Java. Ahora, antes de hacer eso, vamos a hablar de XML en general. No vamos a entrar tanto detalle. No obstante, necesitamos saber qué es XML y cómo podemos usarlo. Entonces, en primer lugar, XML significa lenguaje de marcado extensible. Esto significa que es lenguaje informático el que utiliza el marcado y es capaz de ser extendido. Entonces, ¿qué es el marcado? marcado son las notaciones y símbolos que se utilizan para corregir en la elaboración de texto e indican cómo debe mostrarse el impuesto. Por ejemplo, cada vez que usamos los símbolos, el cierre. Y así estos símbolos son los símbolos de marcado. Ahora, extensible significa que es capaz de estirarse o extenderse. Por lo que en tecnología de la información, extensible describe programa sobre lenguaje de programación que está diseñado para que los usuarios y desarrolladores puedan expandirse, sumar a sus capacidades. Entonces en este lenguaje XML, podemos crear nuestras propias etiquetas. No hay etiquetas predefinidas en él. Y sólo veamos un ejemplo sobre este XML. Y este es un ejemplo, como pueden ver, podemos leerlo y podemos entender la información que tenemos aquí. Entonces, en primer lugar, tenemos una empresa, y dentro de esta empresa tenemos personal y otro miembro del personal. Como podemos ver, tenemos una identificación para el primero ciento diez cientos uno, y para el segundo 12 mil. Ahora, dentro del personal tienes alguna información sobre dispersión. Por lo que tenemos el Nombre, Apellido, apodo, y salario. Y lo mismo para el segundo integrante. Y hablemos de la sintaxis del XML. Tomemos por ejemplo, este ejemplo. Entonces tenemos este primero, FirstName y tenemos bajo. Como podemos ver aquí, tenemos dos etiquetas, la etiqueta de inicio y el ataque. Por lo que siempre que queramos escribir, el antilog simplemente agregará este carácter aquí mismo. Y dentro de las etiquetas, simplemente podemos escribir nuestro texto. Ahora, a esta cosa se le llama un elemento. Entonces este es un elemento de nuestro código o de nuestro texto. Ahora, xml es sensible a mayúsculas y minúsculas. Entonces cada vez que
escribimos una etiqueta de inicio, necesitamos conducir el n-type, lo mismo exacto. Entonces podemos simplemente escribir aquí mayúscula F. Esto
no funcionará ya que XML es como Java, es sensible a mayúsculas y minúsculas. Ahora lo mismo aplica aquí, yace aquí, para que podamos probarlo. El F mayúscula, nombre aquí y seguido de FirstName. Entonces podemos ver que tenemos. Y así el tipo de elemento firstname debe ser terminado por la etiqueta final coincidente. Como se puede ver. Por lo que es un sensible y es importante recordar esto ya que nuestro código dependerá de ello. Ahora, otra cosa es que los elementos no deben superponerse. Entonces supongamos que tengo FirstName y déjame simplemente copiar esto y pegarlo aquí. Y mover esto hasta el final. Como puede ver, generará un error diciendo que el tipo de elemento LastName debe ser terminado por la etiqueta final coincidente apellido. Como puedes ver aquí, tenemos el apellido aquí y la etiqueta final del apellido es después del FirstName. Por lo que XML comprueba si esta etiqueta coincide con esta, todo está bien. No obstante, en este caso, LastName no es así, no
es el FirstName. Y para generar un error. No obstante, si acabo de basarme aquí, no pasará nada ya que todo está en orden. Tenemos el apellido, y esto coincide con la etiqueta de apertura o la etiqueta de inicio, y tenemos el nombre aquí. Ahora permítanme que los mueva de nuevo como antes. Y pasemos a la estructura de elementos en documentos XML. Entonces, en primer lugar, tenemos la empresa y dentro de esta empresa tenemos personal. Y podemos llamar a esta empresa el elemento padre, y el personal es el niño. Ahora, otra cosa es la Declaración, y esta declaración es opcional e indica el número de versión de XML en uso. Y en este caso, esto es divergente 1.00. Y siempre que utilicemos esta declaración, debe estar en la parte superior. Ni siquiera los espacios en blanco o el comando deben convertirse ante él. Por lo que simplemente podemos añadir algo de espacio en blanco. Aquí te dejamos algunos comentarios. Tenemos que agregarla. El primero de primera línea en nuestro documento. Y esta declaración también es sensible a mayúsculas y minúsculas, por lo que puede probar XML mayúsculas, como puede ver. Ahora pasemos a los atributos. Y un atributo especifica una sola propiedad para un elemento. Y consiste en un nombre y un valor separados por un signo igual. Entonces como podemos ver aquí, tenemos nuestro elemento de personal. Y en el personal tenemos aquí algunos elementos, y estos son el niño. No obstante, podemos ver que tenemos una identificación, y este ID es un atributo de cosas. Como podemos ver, este ID, este es el nombre del atributo, y este 101 es el valor del atributo. Y sólo se retiene dentro de la etiqueta de inicio. Y como se puede ver, es después del nombre sin ninguna coma o espacio en blanco o semi, punto y coma, así sucesivamente. Entonces tenemos este nombre igual y devaluación seguido. Después de eso. Después cerramos nuestra startup. Ahora podríamos tener más de un atributo, pero no podemos tener dos valores para un atributo en el mismo inicio que. Entonces otra vez, di 10000 más algo. Esto está mal. No obstante, podemos tener dos atributos. Supongamos que tengo un número, y en este caso, este número es tres. Déjame simplemente escribirlo. Y como puedes ver aquí, no
hay error y funciona bien. Entonces esto es básicamente, esta es una idea general sobre XML, cómo podemos leer datos de estos documentos. Y en el siguiente video, vamos a crear nuestra clase, nuestro programa, para que podamos extraer estos datos usando Java. Pero dicho eso, este es el final de este video y nos vemos en el siguiente.
32. Procesamiento XML local: Y volvamos a nuestro proceso local. Y este es nuestro programa Java aquí vamos a escribir nuestro programa. Entonces, en primer lugar, necesitamos crear nuestro método principal. Y por supuesto vamos a lanzar cualquier excepción que pudiera ocurrir aquí. Y vamos a sólo, podemos. Entonces, en primer lugar, necesitamos tomar este expediente. Por lo que esto es de dot XML con personal y se almacena aquí como podemos ver. Ahora, lo primero que vamos a hacer es crear un archivo y este archivo, llamarlo File y New File staff que XML. Entonces ahora nuestro expediente está aquí. Por supuesto que necesitamos importarlo. Y como antes, simplemente importamos archivo java.io dot. Ahora que tenemos nuestro archivo staff dot xml, cómo podemos extraer datos de él. Entonces comenzamos con algo que se llama documento. Y si acabo de evitar, es en los actos de Java que los analizadores XML empaquetan. Y esto define una API de fábrica que permite a las aplicaciones obtener un analizador que produce árboles de objetos DOM a partir de documentos XML. Por lo que necesitamos extraer datos del máximo. Vamos a utilizar este documento, construir una fábrica. Y ahora que importamos, déjame simplemente nombrarlo DVF. Y si lo escribo una vez más, Factory. Y déjame ver qué métodos están disponibles para nosotros. Tenemos el nuevo método de instancia. Y como podemos ver, esta nueva instancia, es un método estático que crea una nueva instancia de fábrica. Y este método utiliza lo siguiente. Podemos ver que utiliza la fábrica de constructor de documentos y Java que analizadores XML, esa fábrica de constructor de documentos. Y simplemente usamos este método. Y ahora tenemos nuestros objetivos de DVF. Está documentado en la fábrica. Ahora, déjame usar este DBF y ver qué es, cuáles son los métodos aquí. Y como podemos ver, si nos desplazamos hacia abajo, podemos ver que tenemos tantos métodos. No obstante, nos interesa este nuevo constructor de documentos. Y este nuevo constructor de documentos crea una nueva instancia de nuestra fábrica de constructores de documentos. Ahora, déjame usarla. Y aquí voy a definir constructor de documentos. Por supuesto, voy a importarlo. Por lo que se importará de Java X dot xml analizadores de puntos al igual que la fábrica del constructor de documentos y déjame nombrarlo. Db será igual a esto. Ahora. Después de crear este documento será fábrica y constructor de documentos. Voy a pasar nuestro expediente y este documento, por lo que documento que nombramos en el documento d. Y dentro de este documento vamos a utilizar Db dot. Como pueden ver, tenemos tantos métodos también. Nos interesa este autobús. Y como puede ver, sesgo, analiza el contenido del archivo dado como un documento XML. Entonces esto es lo que vamos a hacer. Nosotros vamos a barrotes nuestro expediente. Y por último, tenemos nuestro archivo analizado. Y por supuesto que lo vamos a importar. Y lo vamos a importar desde org dot tres, WC dot dm. Y ahora terminamos con pasar nuestro expediente. Tenemos todos los datos y este documento D. Ahora, volvamos a nuestro documento y notaremos que tenemos personal. Por lo que estamos interesados en el personal aquí, cosas uno y cosas también. Entonces déjame volver aquí. Y si añado d punto, podemos ver que tenemos algunos métodos. No obstante, si queremos tomar los elementos de estos documentos, simplemente
podemos utilizar los elementos get por nombre de etiqueta. Y en este caso, podemos usar este método, getElementsByTagName. Y podemos especificar el nombre al personal. Y por supuesto, podemos almacenarlo en una lista ordenada. Permítanme simplemente crear nuestra lista de nodos. Y por supuesto, importado de AHRQ dot W3C punto abajo. Y déjenme nombrarlo Lista de Staff. Por lo que ahora tenemos nuestra lista de personal. Tenemos el staff stuff uno y staff a lista almacenada y desordenada. Como podemos ver. Ahora bien, ¿cómo accedemos a ellos? Simplemente usará nodos. Por lo que tenemos lista desordenada. ¿ Cómo se accede a una lista de nodos usando un impar? Ahora y déjame crear un guiño y por nombre ID personal nada. Y por supuesto, el elemento dentro de este nodo, déjenme nombrarlo staff ELT como elementos. Y por supuesto, los vamos a importar de como de costumbre. Y déjame simplemente desplazarme hacia abajo. Tenemos aquí todos los tres WC DOM que conocimiento. Ahora que tenemos nuestra lista de elementos, nodos y nodos, podemos empezar con nuestros datos de extracción. Ahora, en primer lugar, vamos a usar algo que hemos usado antes, y ese es el StringBuilder. Y dentro de la cuerda servirá. Vamos, nosotros, sólo vamos a definirlo. Y ahora tenemos nuestro StringBuilder. Y por supuesto vamos a anexar cuántos miembros del personal tenemos. Entonces vamos a acelerar esa banda arriba ahí. Y vamos a tomar lista de stat y ver cuántos miembros del personal. Por lo que simplemente usamos la tercera directriz. Por lo que hay algunos, algunos más largos y miembros del personal. Y por supuesto, vamos a llegar a una nueva línea. Y podemos usar esto. Y ahora terminamos con nuestra longitud. Ahora, permítanme ajustar, extraer datos de nuestro documento. Entonces lo primero que vamos a hacer es
pasar por los elementos dentro de esta lista de stat, lo
siento, denotar dentro de la lista de personal. Y para ello, vamos a crear el bucle for, así sucesivamente. Como de costumbre, de repente a r igual a 0 y terminando en la lista con personal longitud de punto. Esa longitud. Y lo primero que vamos a hacer es tomar este nodo de personal y extraer un nodo de la lista de personal. Entonces, ¿cómo hacemos ese punto StatPlus? Podemos ver que aquí tenemos algunos métodos. No obstante, vamos a tomar este ítem, este ítem de método, y como puedes ver, devuelve un nodo para que i, vamos a extraer este ítem y almacenarlo. Y ahora vamos a anexar a este nodo, al StringBuilder, el número. Por lo que sba punto anexar. Vamos a anexar que este es el número de etiqueta y seguido de yo más uno, ya que estamos empezando en 0, sin embargo, no queremos empezar en 0. Por lo que el personal número 12 y así sucesivamente. Ahora, después de eso, vamos a comprobar si este nodo de personal es un elemento. Y como se puede ver aquí, podemos ver que esta cosa como un elemento. Y déjame volver. Entonces, ¿cómo se hace eso? Entonces f, Tenga en cuenta que brecha. Como podemos ver, tenemos algunos métodos y nos interesa y sin embargo tipo de nodo, nos vamos a denotar. Y Esquilo es igual a notar ese nodo elemento. Entonces si esto es un elemento, vamos a tomar esto y almacenarlo en un elemento, como se puede ver. Entonces creamos aquí un elemento. Simplemente estamos diciendo que si este nodo es un elemento, guárdelo y ELT. Y cómo convertir dos elementos y comparó el nodo de personal en un elemento. Entonces este es el caso. Podemos convertirlo, no pasará nada. Simplemente se convertirá del nodo dos elemento. Después de eso, vamos a crear una lista de atributos. Y así es como podemos extraer algunos atributos de XML. Por lo que como pueden ver, tenemos nuestro DNI. Podemos extraerlo usando este método. Entonces lo primero que vamos a hacer es crear un mapa de nodos con nombre. Y por supuesto ácido importado que lo vamos a simplemente inicializar. Por lo que voy a nombrar atributo y por supuesto, elemento de personal. Entonces este es nuestro elemento. Y simplemente obtenemos, obtenemos estos atributos de este elemento. Después de eso, vamos a crear nuestro nodo. Y este es un nodo de atributo. Y aquí vamos a extraer nuestros elementos de este nodo, de esta lista de atributos. Por lo que podríamos tener más de un elemento o uno más de un atributo aquí. Por lo que vamos a crear un bucle for y pasar por todos los atributos dentro. No obstante, sucede que sólo tenemos un elemento o un atributo en este caso. Y los resultados deberían funcionar correctamente para otros ejemplos. Entonces vamos a crear este for loop. Y en este caso, vamos a obtener la longitud de esta lista de atributos. Y en este caso, lo haré, nodo de
atributo será igual a la lista de atributos como antes ese o aquel ítem este caso y j. Así es. Ahora tenemos nuestro atributo. Simplemente podemos anexar a este StringBuilder. Por lo que como aceleró banda. Y vamos a anexar el nodo de atributo. Y podemos obtener el nombre del nodo usando el método get. Y simplemente escribiré igual. Y por supuesto, quiero obtener el valor. Por lo tanto, atribuyen nodos que obtienen valor de nodo. Y por supuesto déjame solo saltar alinear. Y ya hemos terminado esto. Entonces hasta ahora acabamos de crear nuestra lista de nodos, nodo un elemento. Tomamos este documento y lo almacenamos y creamos la lista de personal. Por lo que aquí tenemos el personal. Como pueden ver, tenemos dos personal, que es, que tiene el id 101, y comenzamos con el ID 2001. Ahora que tenemos nuestro personal y la lista de personal con solo extraerlos uno a uno usando este for loop. Y dentro de este for loop, vamos a tomar el ítem de la lista de staff storied y el nodo de staff. Y entonces este nodo pentagrama es un elemento, simplemente
irá a convertirlo en un elemento, y luego solo extraerá los atributos. Y en este caso sólo tenemos un atributo. Esa es la idea. No obstante, podríamos tener más de uno. Por eso creamos nuestro segundo for loop, y este es el for loop interno. Y en este caso vamos a simplemente anexar los atributos
que tenemos y aún tenemos que extraer los elementos. Entonces tenemos primer apellido y salario, y los vamos a extraer en el siguiente video. Entonces nos vemos.
33. Proceso XML 2 Locales 2: Ahora todavía tenemos que extraer la información del personal. Por lo que tenemos el apodo y salario de primera clase. Y en este caso, simplemente
podemos usar el elemento de staff que creamos y extraer los datos de aquí. Entonces vamos a usar sba dot append. Y en primer lugar, vamos a extraer el FirstName. Y luego después de eso, vamos a usar elemento de personal y obtener elementos por nombre de etiqueta. Entonces el elemento es el nombre de pila. Y por supuesto, el ítem es 0. Y lo vamos a convertir en algo que sea legible o apestoso. Por lo que podemos usar el contenido de contexto engendrado, gravado. Y en este caso, devolverá el nodo como una cadena. Y por supuesto, déjame guardarlo MS drain first_name. Y entonces simplemente usaré este FirstName. Por lo que voy a anexar este FirstName. Y déjame simplemente saltar a otra línea. Y yo voy a hacer lo mismo por el otro. Entonces tenemos el apellido. Y en este caso, permítanme simplemente copiar esto. Básicamente esto aquí. Y este es el apellido. Voy a extraer los elementos por nombre de etiqueta y esto es último. Y por supuesto lo mismo aquí, ítem en 0 y obtener contenido de contexto de texto. Y por supuesto voy a subir tan apellido y saltar. Ahora la segunda o la tercera información que vamos a extraer es el, como se puede ver, apodo. Y finalmente tenemos el salario. Entonces vamos a anexar apodo. Y por supuesto, string, déjame copiarlo. Tenemos aquí nuestro apodo y getElementsByTagName nombre. Y por último, vamos a anexar el llamado salto. Entonces lo último es agregar banda. Tenemos en el salario. Y en este caso, lo
vamos a almacenar y moderar también. Entonces salario de cadena igual a, lo siento, déjame simplemente copiarlo. Entonces salario aquí. Y conseguir elementos por esa viga, salario. Y por último, simplemente vamos a anexar a nuestra información y a nuestro StringBuilder, sueldo más salto. Y en este caso, permítanme simplemente, justo sobre lo que hicimos aquí. Entonces, en primer lugar, tenemos nuestro elemento y dentro este elemento tenemos algunos otros elementos hijos. Por lo que tenemos nuestro personal que se almacena en nuestro, como podemos ver, elemento de personal. Ahora para extraer los datos de esto, utilizamos getElementsByTagName. No obstante, recuerda que cada vez que usamos este get, getElementsBytagName, Vamos a obtener una lista de nodos. Por lo que los restauró en una lista ordenada. Podríamos haber hecho lo mismo aquí. No obstante, como solo tenemos un ítem, podemos simplemente usar el método de cada ítem y extraer el primer ítem que está en el índice 0. Y luego lo vamos a convertir en una cadena usando el contenido get text. Por lo que podríamos haberlo hecho de otra manera. Por lo que solo podemos crear una lista de nodos y pongámosle un nombre. Y por supuesto podemos usar elemento de personal que obtengan elementos por nombre de etiqueta. Y por supuesto podemos usar el FirstName. Y así esta es nuestra lista de nodos. Entonces podemos usar y agregar ese ítem 0 o P8, crear nuestro for loop y así sucesivamente. Por lo que podemos hacer exactamente lo mismo que antes. No obstante, ya sabemos que nuestro documento de personal está consistente en primer apellido apodo a sueldo, por lo que sólo tenemos uno de cada uno de estos. Por lo que simplemente podemos usar este método. Entonces ahora que tenemos nuestro bien, déjame simplemente seguir adelante y hacerlo. Así que corre como aplicación Java que porque obtienes una lágrima. Y no pasó nada sólo porque no imprimimos nuestro StringBuilder. Entonces aquí tenemos nuestro primer for loop termina aquí. Entonces System.out.print. Ejecuta este código una vez más. Vamos a obtener nuestros datos. Entonces lo primero que hicimos es como podemos ver que simplemente acercamos un poco. Y como pueden ver aquí, lo primero que hicimos es imprimir cuántos miembros del personal tenemos. Por lo que tenemos aquí hay dos miembros del personal. Después pasamos a nuestro personal y extraemos algunos datos. Entonces por supuesto que anexamos. Entonces el personal número uno aquí, lo siento, no
pude haber saltado y muriendo. Y déjame correr esto una vez más. Vamos a conseguir esto. Por lo que personal uno a como el DNI 101. Por lo que imprimimos a partir de esto. Ahora, ya que sólo tenemos una idea, podríamos haber usado esto en 0 y eliminar esto for loop. Plantón de fusilamiento Una vez más, obtendré el mismo resultado que antes. No obstante, si tenemos más de un atributo, esto no funcionará. Simplemente regresará para nosotros esta línea. Ahora déjame volver aquí. Después de eso, solo imprimimos el nombre, apellido, apodo y sueldo, y hacemos exactamente lo mismo para el segundo miembro del personal. Por lo que tenemos personal para ID 2001, primer apellido y salario. Ahora bien, este es un ejemplo rápido y sencillo sobre XML y cómo extraer datos de documentos XML. En los próximos videos, vamos a profundizar en este documento XML extrayendo tipo de cosas y nos vemos entonces.
34. Proceso XML del navegador: Hola y bienvenidos de nuevo. Y en este video seguimos cubriendo XML. No obstante, este término no procesaría XML local. Vamos a ir a Google y extraer algunos datos de un sitio web. Entonces supongamos que tenemos, vamos a Google y BBC News. Y como pueden ver, si vamos aquí, así son las noticias. Y por supuesto, podemos simplemente, si queremos extraer datos de XML, simplemente
podemos escribir RSS dot xml. Y esto nos va a dirigir a una página, y este es el feed RSS de la BBC News. Por lo que nuestro programa debería tomar estas noticias y simplemente extraerlas y almacenarlas ya sea
imprimiéndolas en el cabildo o almacenarlas en un archivo. Y ya veremos qué va a pasar. Entonces déjame solo crear un nuevo archivo. Será simplemente una clase, lo
siento, cuando lo nombre. Noticias de la BBC. Ahora esta es nuestra clase. Y dentro de esta clase, como de costumbre, vamos a utilizar el método principal y lanzar la excepción. Ahora empezaremos con nuestra clase. Entonces, en primer lugar, esta es la URL, y simplemente la almacenaremos en una URL. Por supuesto importante. Pero la red que u r, l, entonces lo nombro usted. Y, y en este caso, si quiero crear esta URL, simplemente
puedo crear una nueva URL y copiar el enlace desde aquí y aquí. Por lo que ahora tenemos nuestra URL. Ahora cómo podemos usarlo, podemos usar el flujo de entrada. Y en este caso, déjame nombrarlo, supongo. Y usaré URL dot. Tenemos el stream append, lo siento, append stream. Y esto generará un InputStream. Y por supuesto que debería importarlo de java.io, ese flujo de entrada. Ahora que tenemos nuestros datos, nuestro XML, simplemente
podemos comenzar con Baden fábrica constructor de documentos como antes, DBF
importado igual a documentar la fábrica. Y la nueva instancia. Entonces vamos a crear nuestro constructor de documentos. Lo mismo que antes. Document DB es igual a punto DBF y seguido de New Document builder. Entonces vamos a crear nuestro documento y limitar el argumento esta vez. Y DB esa caja. Vamos a pasar el flujo de entrada que acabamos de crear. Ahora por supuesto que necesitamos emplear estos. Por lo que importar desde octeto tres WC, entrada de Java, excelentes analizadores XML. Ahora tenemos nuestra configuración. Simplemente podemos empezar con la extracción de datos. Entonces lo primero que vamos a hacer es crear el StringBuilder para almacenar datos. Por lo que StringBuilder velocidad igual a nuevo StringBuilder. Y en este caso, añadiré algo de fuerza aquí ya que puedo usar el apéndice de punto SP, sin embargo, puedo usar este parámetro, por lo que los arrancaré en HTML. Entonces déjame solo crear la cabeza con derecho a nuestro archivo HTML. Por lo que HTML. Y dentro de esta cabeza tenemos el título. En este caso, se trata de BBC News. Y por supuesto que debería cerrar el título, entonces. Cierra la cabeza y sigue el cuerpo. Debería pasar ahora, el cuerpo. Ahora este es nuestro StringBuilder. Empecemos con nuestro XML. Entonces lo primero que vamos a hacer es como antes, lista de nodos MAD. Y en este caso, le
nombraré lista de artículos. Por supuesto, voy a utilizar el documento que obtengan elementos por nombre de etiqueta y este nombre es ítem. Entonces ahora déjame solo importar esto. Y todo lo es. Entonces, ¿por qué escribí ítem aquí? Si vuelvo a nuestras Noticias de la BBC y haga clic derecho, tenemos vista fuente de página. Y este es nuestro documento XML. Como puedes ver, tenemos el título, descripción, enlace, imagen, etcétera. No obstante, nos interesan los rubros. Y estos artículos son ya sea artículo, título y descripción. Entonces tenemos este título y por supuesto en descripción, entonces tenemos otro ítem con título y descripción también. Por lo que nos interesan los artículos. Como pueden ver, tenemos tantos artículos y los vamos a extraer todos. Entonces volvamos aquí y trabajemos con nuestro ítem como antes, nodo, ítem, nodos y elemento de elemento, ELT. Y por supuesto. Importa estos dos de los tres WC que tonta. Ahora, después de crear nuestro nodo, último nodo y elemento, vamos a crear nuestro for loop. Y el límite es el documento o document.getElementById. Lo sentimos, simplemente podemos usar la lista de artículos que creamos. Entonces lista de artículos pero obtener longitud, ¿verdad? A menos que eso consiga longitud. Y ahora podemos trabajar con nuestro for loop. Entonces dentro del bucle cuadrado vamos a tomar una nota a la vez, así que la vamos a almacenar en el nodo de ítem que creamos. Por lo que el elemento nada será igual a los ítems, elemento de
lista en el índice i Ahora, después de esto, vamos a comprobar si se trata de un elemento. Ahora. Y el proceso local. Aquí. Utilizamos esto como, como se puede ver aquí, comprobamos si el nodo de personal para obtener tipos de nodo. Por lo que utilizamos el método get. Y si esto es igual al nodo elemento, ahora vamos a usar otro método. Y podemos simplemente usar este nodo ítem es instancia un elemento si este es el caso. Entonces instancia de significa que esta nota de ítem es instancia de este elemento, lo
siento aquí, instancia como esta. Y así si este nodo de elemento es una instancia de elemento, vamos a ingresar esta declaración. Entonces este es el caso como antes, vamos a convertir en elemento una historia,
la historia en el ítem ELT. Y cómo lo hacemos, ¿hacemos eso? Simplemente escribiremos elemento y seguido de item.name. Ahora que tenemos nuestro elemento elemento, simplemente
podemos almacenarlo y nuestro StringBuilder. No obstante, estamos creando HTML. Entonces usemos el, como pueden ver, tenemos el título y la descripción. Entonces se piensa el título en H2 y la descripción en un párrafo. Entonces, ¿cómo se hace eso como v dot append H2. Entonces aquí tenemos filo dos. Y por supuesto, después de eso, vamos a utilizar elemento elemento que obtengan elementos por nombre de etiqueta. Y este nombre es el título. Como dijimos antes. Si volvemos aquí, tenemos dentro del artículo, el título y la descripción. Entonces vamos a conseguir el título como antes, el ítem en 0 que obtiene TextContent. Y luego voy a cerrar esta etiqueta. Por lo que simplemente usaré cerca de. Ahora. Después de eso, simplemente voy a usar la etiqueta de párrafo para crear la descripción. Por lo que sba punto anexar. Y dentro de esto, voy a crear nuestra etiqueta de párrafo, seguida de elementos de elemento que obtienen elementos por nombre de etiqueta. Y en este caso tenemos descripción. Y como de costumbre, ese artículo en 0. Entonces el contenido del texto. Por supuesto que también lo voy a cerrar. Entonces aquí cerramos eso. Y ahora tenemos nuestros datos aquí. Por último, después de terminar de ds, permítanme simplemente modificar esto. Por lo que aquí tenemos nuestro for loop. Después de terminar de este bucle while, necesitamos cerrar nuestro cuerpo y HTML. Entonces simplemente anexo aquí, velocidad eso, upend nuestro cuerpo cercano. Después cierra HTML. Ahora ya terminamos con anexar y estamos fijados. Entonces si sigo adelante e imprimo no y velocidad, ejecutamos esto. Y como podemos ver, tenemos aquí tantas palabras. No obstante, acabo de conseguirlos en una línea porque no los guardé en clientes aquí. Entonces después de cada descripción o cada título, voy a saltar alineado. Y por supuesto, y si redondeo esto una vez más, vamos a conseguir estos. Ahora. ¿ Por qué los guardé así? ¿ Por qué creé un HTML? Entonces, solo obtenemos estos datos y los almacenemos en un HTM L phi. Entonces si voy aquí antes de crear nuestro documento, Linda constructor de documentos de fábrica y documento, podemos crear nuestro archivo que vamos a almacenar estos datos. Y así después de flujo de entrada, simplemente
voy a crear nuestro archivo. Démosle un nombre noticia, y será igual a nu. En este caso, lo nombraré usado ese SDM. Por lo que HTM significa HTML. Ahora que hemos creado nuestro archivo, necesito oponerme, por supuesto, desde java.io. Después de eso, voy a emplear al ArchivoWriter. Nos enteramos de este escritor de archivos antes. Entonces vamos a imponer el escritor de archivos phyla. Y después de eso, vamos a crear un escritor de archivos. Y dentro de esta noticia de archivo, entonces vamos a crear el escritor buffered, BW. Y por supuesto, nuevo escritor buffered con el parámetro de f w ha retado a escritor. Entonces finalmente, vamos a crear el escritor de impresión, y esto usará esto para extraer, para escribir datos en nuestro archivo. Por lo que Brin escritor, PW para ser igual a nuevo escritor de impresión y Vw como parámetro. Y ahora nos pusimos.
35. Proceso XML desde el navegador 2: Ahora, después de configurar nuestro archivo en el que vamos a escribir nuestros datos XML, lo
vamos a utilizar aquí después de agregar la etiqueta final del cuerpo y HTML, vamos a usar el BW, esa marca, Sb. Entonces lo vamos a cerrar un p-type debido al cierre. Y ahora si ejecuto este código, podemos ver que tenemos aquí dentro de nuestro proyecto, tenemos noticias que SDM, entonces este es nuestro archivo HTML. Ahora, si hacemos click en él, vamos a conseguir el título y la descripción de todas las noticias. Por lo que tenemos la primera descripción de un título que la segunda descripción del título, y así sucesivamente. Entonces tenemos todas las noticias aquí y nuestras Noticias de la BBC. Por ahora. Esto es algo que puedes hacer como ahora esto es cambiable. Entonces cada vez que hacemos click, así que si ejecuto este código, ahora, voy a conseguir esta noticia que HTML. No obstante, si corro esto mañana, voy a conseguir diferentes títulos y descripciones. Depende del momento en que Irán discordia. Desde entonces usa el cambio diario. Ahora podemos agregar algo aquí, y esto es para vincular esta noticia que HTML al navegador. Entonces una forma de hacerlo es usar el escritorio. Y tenemos un método que se llama gad desktop. Y dentro de este método podemos navegar y vamos a enlatar las noticias. No obstante, necesitamos convertirlo a URI. Tan acostumbrado a URI. Ahora bien, si ejecuto este código, me redirigirá al navegador. Y dentro de este navegador, voy a conseguir estos títulos y descripciones. Entonces esta es la noticia de la BBC. Simplemente los tomo del archivo XML o de un documento, luego los estudié en mi propio archivo como HDMI. Ahora, por supuesto, podría usar esto desde aquí o generar un navegador usando este método aquí mismo. Y déjame explicarte solo un poco sobre MDM. Y para los que no lo saben. En HTML, tenemos etiquetas predefinidas. Por ejemplo, el borde dos es el título dos, y B significa párrafo. Entonces cada vez que queremos crear un nuevo archivo HTML, lo
primero que vamos a hacer es crear la etiqueta HTML, después la cabeza, luego el título. Por supuesto que vamos a escribir un más apretado luego cerrar el título seguido de la cabeza. Después de eso, vamos a escribir nuestro cuerpo. Por lo que anexamos esta etiqueta corporal. Escribimos todo lo que queremos aquí desde H2 y párrafo. Después de terminar, acabamos de cerrar el cuerpo y cerrar el HTML. Y ahora nosotros nuestro SDM magnificó. Después lo almacenamos en el archivo. Creamos el HDR más nuevo. Y por supuesto, sólo lo navegamos usando este método aquí mismo. Y esto es todo para este ejercicio. Podemos utilizar este programa siempre que queramos consultar las noticias. Simplemente podemos ir a Eclipse y ejecutar este código. Y vamos a recibir las noticias directamente. Y esto es todo para este video. Espero que disfruten de este programa y nos veamos el siguiente.
36. Ejemplo de catálogo: Ahora vamos a resolver otro problema. Y aquí tenemos un catálogo. Por lo que este es nuestro archivo Catálogo dot x m n. Así que este es nuestro documento. Y dentro de este documento tenemos catálogo. Y dentro de este catálogo tenemos CDs. Entonces como podemos ver, en cada CD tenemos el título, el nombre del artista, país, empresa, precio y rendimiento. Ahora lo que vamos a hacer aquí es que vamos a repasar todos estos CDs. que tenemos tantos CDs y respeto para extraer el CD más barato y el más antiguo. Entonces vamos a extraer dos CDs. Uno que es el más barato, y el segundo es el más antiguo cuando todas estas ciudades. Entonces como podemos ver aquí, tenemos 1971, nos desplazamos hacia abajo, encontraremos 19881987 y así sucesivamente. Entonces sigamos adelante y creemos nuestro último aquí. Entonces aquí tenemos nuestra suma L, Y voy a crear nuestra clase por su nombre catálogo. Y empecemos como de costumbre. Entonces lo primero que vamos a hacer es crear nuestro método principal. Por supuesto, arroje la excepción. Y entonces podemos empezar con la salida. Ahora tenemos nuestro archivo aquí, así que simplemente crearemos una importación de archivo, importada de java.io. Y limitemos phi igual a phi. Y dentro de este archivo tenemos todo el catálogo de nombre de archivo que eczema. Y después de eso, podemos empezar con la creación de nuestra fábrica de constructores de documentos. Por lo que documento proveedor de fábrica importado de Java extra el XML. Y limite DVF como de costumbre y documento la fábrica, esa nueva instancia. Entonces vamos a crear nuestro constructor de documentos. Nombremos DB. E importante por supuesto. Entonces dB será igual a DBF, ese nuevo constructor de documentos. Y por último, vamos a crear nuestro documento. Y este es nuestro documento y necesitamos importarlo de tres WC que hacia abajo. Ahora tenemos nuestro documento y pasamos nuestras devoluciones de archivos, empieza con nuestros datos de extracción. Por lo que tenemos denotado lista como de costumbre importado de aquí. Y vamos a nombrarlo, nota o una L. Así que esto se refiere a la lista de nodos. Y también tenemos un nodo, y lo vamos a nombrar nodo con una n minúscula. y finalmente tenemos nuestro elemento como de costumbre importado y limite ELT. Ahora volvamos a nuestro catálogo dot documento XML y veamos qué vamos a hacer. Por lo que vamos a imprimir el nombre del artista y el título del CV, seguido del año en caso de que vamos a extraer el CD con el año más antiguo y seguido del precio siempre que queremos imprimir la ciudad con el más barato precio. Por lo que vamos a crear un ArrayList de todos y cada uno de estos elementos. Por lo que vamos a crear un ArrayList para título, Test y precio. Y engranaje simplemente terminará creciendo, e ignorará al país y a la empresa en este caso. Entonces lo primero que vamos a hacer es crear un ArrayList importado. Y lo vamos a tomar como una cuerda. Y así este es el nombre. Y por supuesto, inicializando una nueva lista de arreglos. Y déjame copiar esto y pegarlo. Por lo que tenemos cuatro ArrayList. Y en este caso, uno por el nombre. Dijimos que necesitamos uno para el título y un precio. Y el último es por el título. Y esto es por precio. Y por último, esto es para el. Ahora, después de crear las listas de array, podemos comenzar con nuestro código. Entonces lo primero que vamos a hacer es, como de costumbre, empezar con un bucle for para pasar por todos los elementos o todos los CDs en este caso. En lo que va de momento. Y por supuesto, antes de hacer eso, vamos a indicar que necesitamos todos los CDs. ¿ Cómo hacemos eso? Simplemente vamos a asignar para denotar lista db dot, obtener elementos por nombre de etiqueta. Y este es un CD. Ahora tenemos todos los CDs dentro de nuestro y yo, y podemos empezar a extraerlos uno por uno. Por lo que el límite aquí es un punto L obtener longitud. Por lo que la longitud de nuestra lista de nodos. Ahora podemos empezar asignando para denotar un elemento en i y comprobar si este nodo es una instancia de un elemento. Entonces f nodo, instancia de elemento. Si esto es descomposición, entonces vamos a preceder con el código R. Y en este caso vamos a convertir este nodo en un elemento y almacenarlo en ELT, así elemento. Y aquí vamos a convertir el nodo que tenemos. Y por último, ya podemos obtener los datos. Por lo que dentro de este nodo tenemos un CD, y en cada ciudad tenemos el título, artista, país, empresa, precio y año. Por lo que sólo vamos a tomar este título, por ejemplo, y almacenarlo en nuestro ArrayList. Eso es título. Entonces, ¿cómo hacemos eso? Vamos a tomar título ese pad y vamos a sumar. Elt dot obtener elementos por nombre de etiqueta. Y dentro de esta etiqueta, vamos a indicar que necesitamos el título. Y por supuesto, necesitamos el primer ítem de este título. Y esto es en el ítem 0 y consigue el contenido extra. Ahora que tenemos nuestro título, podemos hacer exactamente lo mismo para todos los demás elementos. Entonces déjame copiarlo y pegarlo tres veces. Y ahora tenemos nuestro como nosotros, como dijimos antes, tenemos el título, tenemos el nombre. Y también tenemos al Bryce aquí. Y permítanme que modifique los EU. Entonces aquí tenemos el, dijimos título y dijimos el artista y precio. Y finalmente el año. Ahora, déjame ser sólo una cosa. ¿ Por qué agregamos este ítem a 0? Recuerda que siempre que utilicemos getElementsByTagName, esto generará, generará para nosotros una lista de nodos. Y en este caso, podemos ver claramente que sólo tenemos un elemento dentro de esta lista de nodos, y este es el título. Y en este caso, simplemente podemos extraer el primer elemento. Dado que sólo tenemos un elemento, podemos extraer el ítem en el índice 0. Este es el primer elemento, y esto funcionaría aquí. Ahora tenemos nuestros datos y se almacenan en el ArrayList. Seguidamente procedemos ahora con nuestro código. Entonces después de extraer todos estos datos de Catalog dot xml, y ahora podemos usarlos fuera de nuestro bucle for ya que se almacenan en la matriz lets list justo aquí. Entonces ahora, empecemos con nuestra comparación. Ahora dijimos que queremos la ciudad con el precio más bajo. Entonces vamos a tomar precio y comparar todos y cada uno de los precios aquí con el siguiente. Y siempre que
encontremos el mínimo, vamos a simplemente imprimir el título, el precio
del artista, para luego proceder con nuestra ciudad más antigua. Entonces, en primer lugar, empecemos con el premio. Entonces déjame solo crear un entero y este será el precio mínimo de subida. Entonces precio. Y en este caso, asignaré un entero ese valor máximo, que es una constante que sostiene el valor máximo y n puede tener. Entonces como vamos a comprobar un mínimo, es mejor empezar con un entero muy grande. Ahora, después de eso, vamos a pasar por todos los elementos aquí y ver cuál es el elemento con el precio más bajo. Entonces vamos a crear un bucle for y empezará con i igual a 0 e igual al tamaño de punto Bryce. Ahora vamos a pasar por esto y comprobar si los hombres. El precio es mayor que el precio mínimo aquí. Entonces precio que se meten a i, f, esto es descomposición. Entonces déjame empezar aquí el índice. Por lo que índice del mínimo para ser igual a 0 al principio. Ahora, vamos a consultar este precio ArrayList. Y si encontramos algún elemento que sea menor que este mínimo, vamos a asignar este mínimo para que sea igual al elemento que acabamos de encontrar. Entonces, ¿cómo se hace eso? Entonces, el precio de los hombres debe ser igual al precio, pero llegar a i y vamos a almacenar, comprar. Entonces índice será igual a i Ahora tenemos nuestro índice y nuestro mínimo aquí. Déjame sólo ver qué es. Entonces aquí tenemos, así que tenemos aquí el precio que es una fortaleza. Como dijimos, creamos una lista de array de string y nuestro precio medio es un entero. Entonces, ¿cómo lidiar con eso? Simplemente podemos convertir esta cadena en un entero usando el extremo Integer.ParseInt. Y en este caso, este es el parámetro. Y aquí se aplicará lo mismo. Tan integer ese bus y aquí tenemos mayúscula M. Y ahora llegamos, así que después de salir de todo este bucle, vamos a tener nuestro mínimo y vamos a tener el índice. Entonces ya que necesitamos imprimir el título, artista, y precio, simplemente podemos imprimir el elemento de título en índice. Este índice. Y lo mismo para los artistas y los precios. Por lo que podemos imprimir aquí, guardar que el CD con el precio más bajo y obtener el precio que consiguió en índice. Y simplemente podemos decir que el CD con el precio más bajo
del precio es creado por y guardar el nombre así lo crea. Y simplemente vamos a sumar. Entonces aquí. Déjame simplemente crear una nueva cadena aquí. Y vamos a decir que es creado por el artista. Y este es el nombre.gov. Y simplemente diremos, lo
terminaré y el nombre de la ciudad y el nombre. Por lo que el nombre del CD y el título. Y aquí tengo índice. Entonces ahora déjame solo, déjame solo, justo este año tenemos una lista de array, nombre, título, precio, y utilizamos el precio. Utilizamos, lo siento, necesito agregar un signo más y obtenemos, y si ejecutamos este código, vamos a obtener una excepción de formato numérica. Entonces aquí en nuestro catálogo, teníamos algunos, como se puede ver en nuestro catálogo, ese XML tenemos el precio como doble y usamos entero. Entonces una forma de lidiar con eso es simplemente usar el doble. Y luego vamos a duplicar. Y lo mismo se aplica aquí. Double.parseDouble. Y tenemos, ahora, después de terminar esto, simplemente vamos a ejecutar este código una vez más. Y nos dieron el CD con el precio más bajo de 7.20 es creado por simplemente leer y el nombre de la ciudad es libro de imágenes. Ahora si volvemos a nuestro catálogo y buscamos a través de todos los CDC, podemos encontrar que esta información es correcta. Todavía tenemos el año y lo haremos en el siguiente video.
37. Ejemplo de catálogo 2: Nuestra siguiente tarea es encontrar el CD con el nivel más antiguo o el más bajo. Entonces volvamos a nuestro código. Y como lo hicimos aquí, vamos a aplicar exactamente lo mismo, sin embargo. Ahora con nuestro Dios, lo
siento, cedió un conjunto de precio. Entonces déjame copiar esto y pegarlo una vez más aquí. Y cámbiate esto. Por lo que mínimo año y x dos. Y por supuesto, tenemos que cambiar estos también aquí. Entonces vamos a chequear por nuestro aquí. Y tienes gas. Pero en lugar de pasarlo a un doble, lo
vamos a pasar a un entero. Entonces integer.parseInt. También lo mismo aquí, integer.parseint. Y lo último que vamos a hacer es cambiar índice dos y año. Ahora estamos bien. En realidad podemos darnos, ya que nuestro precio aquí son pruebas tituladas son, tienen la misma longitud exacta. Entonces no necesitamos cambiarlo realmente, sin embargo, sólo lo modificamos solo para poder entender lo que vamos a hacer aquí. Ahora que tenemos nuestro mínimo y el índice, simplemente
podemos escribir también como hicimos aquí. Entonces déjame copiar esto una vez más y pegarlo. Por lo que el CD con podemos decir en realidad la ciudad más antigua que podemos decir está creada. Y y por, simplemente podemos quitar. Entonces vamos a conseguir que se cree la ciudad más antigua, luego el año por el nombre y el nombre de la ciudad es, y títulos que obtienen. Por lo que aquí necesitamos cambiar el precio al año. Y estamos bien. Si ejecuto este código una vez más, voy a conseguir el CD con el precio del OS. Esta es la primera declaración impresa recreada aquí. Ahora la segunda declaración impresa es la ciudad más antigua se crea en 1985 por simple lectura y el nombre del CD es libro de imágenes. Ahora, fíjate aquí que son iguales, entonces algo es fuerte. Como si volviéramos aquí, simplemente
podemos notar que usamos el índice del primero. No obstante, necesitamos el índice dos y ejecutar este código una vez más. La ciudad más antigua es creada en 1968 por Otis Redding y el nombre de la ciudad es el muelle del debate. Ahora, tenemos nuestra información, los
extraemos de nuestro catálogo, ese XML. Y si volvemos a nuestro documento y buscamos a través de todos estos CDs aquí, simplemente
podemos simplificar que toda esta información sea precisa y correcta. Por lo que el precio más bajo es de 7.20 y el más antiguo es de 1968. Y esto es básicamente para este ejemplo. Si queremos modificar algunas de estas, simplemente
podemos enumerar todas las empresas. Entonces una forma de hacerlo, ya
tenemos ArrayLists. Y en este caso podemos crear una nueva lista de arreglos solo para el nombre de la empresa. Por lo que ArrayList, empresa con dos nuevos ArrayList. Y en realidad, si especificamos el tipo aquí, no
tenemos que especificarlo una vez más aquí en la etiqueta final. Por lo que simplemente podemos quitar esto y funcionará correctamente. Por lo que ahora tenemos nuestra empresa. Añadamos la información de la empresa dentro de este ArrayList. Entonces empresa que, que vamos a agregar elemento que obtengan elementos por nombre de etiqueta. Y el nombre de la etiqueta es empresa. Y luego ese elemento en 0 y convertirlos en una cadena usando el get TextContent. Ahora que tenemos los nombres de nuestras empresas, simplemente
podemos crear un bucle for y pasar por todos los nombres de empresas. Como dijimos, podemos usar el tamaño de la empresa e imprimir empresa. Y déjame simplemente agregar aquí empresa i más 12 puntos y luego simplemente imprimo la empresa en índice i. Y antes de esto podemos simplemente empresas. Y ahora si ejecutamos este código una vez más, vamos a conseguir todas estas empresas. Por lo que justo ahora tenemos la empresa uno de la empresa, Columbia, empresa tres, RCA, BMG, CBS, y así sucesivamente. Por lo que aquí está una lista de todas las empresas dentro de este catálogo, pero XML. Ahora. Por lo que siempre que tengamos un documento XML, ahora podemos modificarlo. Podemos tomar la inflamación, extraer lo que queramos, y usarlos como queramos. Y esto es básicamente para este ejemplo. Nos vemos en el siguiente video.
38. Ejemplo de la empresa: Ahora veamos otro ejemplo. Y en este caso tenemos un archivo XML que es empresa. Y dentro de esta empresa tenemos algunos empleados. Como puedes ver, tenemos al primer empleado, tenemos el nombre, apellido, y el salario. Por lo que tenemos bruto y neto dentro del salario. Entonces tenemos al segundo empleado, y así sucesivamente. Tenemos cuatro empleados. Ahora vamos a crear nuestra clase, y démosle el nombre empresa. Entonces esta es nuestra clase. Como de costumbre, comenzamos con nuestra creación de nuestro método principal, lanzando la excepción. Entonces Rose excepción. Entonces podemos empezar con la creación de nuestro archivo. Por lo que 55 a un nuevo expediente y pobre profanado. Y por su nombre es empresa. Ese XML. Ahora que tenemos nuestra multa, podemos empezar con la creación de nuestro documento Builder Factory. DBF importado igual a documento, construir la fábrica. Y en este caso, el nuevo incienso como de costumbre. Entonces pasemos a crear nuestro constructor de documentos. Tan atornillada db igual a DBF que documenta filtro. Y por último, podemos crear nuestro documento importado de o a tres WC.com. Como de costumbre, estimado Documento DB, eso barra nuestro expediente. Ahora tenemos nuestro documento, podemos empezar con la extracción de nuestros datos. Entonces lo primero que vamos a hacer es como de costumbre, crear nuestra lista de nodos y L. Entonces por supuesto necesitamos importarla. Después de obtener nuestra lista de nodos, podemos crear nuestra importación de nodos. No olvides importarlo de Ogden PWC dot-com y no de ese sun.org y así sucesivamente. Entonces aquí es donde se tiene a Bartlett y el elemento importado también ELT. Ahora podemos seguir adelante. Entonces lo primero que vamos a hacer es crear la lista de nodos y l.
y en este lado,
este documento de lista de nodos que obtienen elementos por etiqueta, nombre. Y vamos a conseguir, si volvemos a nuestra empresa, vamos a conseguir al empleado. Y en este caso, tenemos empleado. Y ahora dentro de esta lista de nodos, tenemos la información del empleado como FirstName, LastName, y salario. Ahora sigamos adelante. Por lo que nuestro bucle comenzará en 0 y terminará con y sin embargo longitud. Ahora, vamos a asignar el nodo dos. En el ítem i, entonces por supuesto vamos a comprobar si esta instancia de nodo de elemento, este es el caso. Podemos proceder con nuestro código. Y ahora, si este nodo es un elemento, simplemente
podemos convertir tan elemento y seguido de denotar. Ahora, volvamos a nuestro documento de empresa y podemos ver que tenemos primero, siglo pasado. Y en este caso, necesitamos crear una lista de arreglos para simplemente almacenar estos datos dentro de nuestras matrices. Y en este caso, puedes crearlos aquí. Entonces lista de matriz, y esta lista es una cadena. Y en este caso vamos a nombrarlo FirstName. Y por supuesto lista de array. Y el segundo es el apellido. Cadena también apellido igual a mu Array List. Y definir una lista de matriz será, tenemos en realidad dos, como se puede ver aquí, tenemos uno que es un entero y el segundo doble. Entonces vamos a crearlos como enteros y dobles. Así que lista de matriz de enteros. Y en este caso, necesito usar la clase de envoltura aquí, lo siento. Y el nombre de esto es grosero y simplemente inicializarlo. Y la última lista de array será de tipo doble. En este caso, es el sueldo neto e inicializarlo como de costumbre. Ahora tenemos nuestra lista de arreglos, y ahora podemos almacenar nuestros datos dentro de estos ArrayLists. Ahora volvamos a nuestro elemento. Y dentro de este elemento podemos almacenar los valores. Entonces nombre, pero agrega,
vamos a agregar el LT, pero getElementsByTagName y el nombre de tipo es el nombre de pila. Y después de conseguir este FirstName, vamos a conseguir el primer artículo. Entonces ese artículo, lo siento. Aquí, necesitamos simplemente modificar algo para simplemente agregar los paréntesis extra aquí. Y después de terminar De esto, simplemente
podemos dejarme solo en realidad aquí, solo
agregamos algo y no es necesario. Por lo que elemento en 0 y que obtengan contenido de texto. Y tenemos ahora el segundo es el apellido. Entonces apellido, pero agregar. Y dentro que conseguir elementos por etiqueta, nombre, apellido, nombre, ese artículo. Y por supuesto cerró ese ítem a 0 como de costumbre que obtienen contenido de texto. Ahora, después de terminar con el nombre y apellido, necesitamos pasar a entero y doble. Tenemos asqueroso. Y ahora para crear nuestro Really para agregar nuestro elemento en la lista de matriz de enteros, necesitamos tenerlo como un entero. Entonces siempre que lo
necesitemos, queremos sumar un entero aquí en nuestro crecimiento. Simplemente puedes decir brillo ese anuncio. Y lo primero que vamos a hacer es usar el método Integer.parseInt. Y dentro de este método podemos simplemente usar el elemento plt.plot. Y en este caso necesitamos conseguir crecimiento y el ítem en 0 y obtengo contenido de texto. Entonces, ¿qué hicimos aquí? Acabamos de obtener los elementos por etiqueta nombre grass, obtuvimos el primer elemento y convertimos en una cadena para luego almacenarlo y un entero después de convertirlo a un entero también. Ahora lo último es el punto neto. Y como de costumbre, doble punto parse. Y podemos simplemente usar ELT pero obtener elemento como antes, y ese elemento en 0 que obtiene TextContent. Ahora, creo que tenemos, si volvemos aquí y encontramos que tenemos red de clase, nombre y apellido. Ahora, tenemos todos nuestros datos aquí. Podemos trabajar con ellos como queramos. Por lo que nuestro objetivo aquí es encontrar al empleado con el salario más bajo, más bajo y con el salario más alto. Por lo que necesitamos encontrar a los empleados. Y para hacer eso, eso ha creado, después de terminar de este for loop, vamos a crear. Entonces integer max que obtendrá, tendrá un entero que significaba valor. Y el mínimo tomará entero ese valor máximo. Y estos dos enteros, Max y significados por responsable de encontrar el salario bruto más alto y más bajo. Entonces sigamos adelante y empecemos con nuestro código aquí. Tenemos enteros min y max. Y vamos a pasar a los elementos de pasto en la lista de pastos. ¿ Y cómo se hace eso? Simplemente asignamos a agarrar tamaño y empezar. Entonces déjenme simplemente crear dos y los índices fuera, tan bajos iguales a 0 y altos también iguales a 0. Ahora f, nuestra hierba que llegan a i es menos de hora mínima. Tenemos que cambiar nuestro mínimo. Por lo que mínimo será grass dot get at i y nuestro bajo será igual a este i. Y por supuesto necesitamos revisar para el máximo. Por lo que f hierba punto en i es mayor que el máximo. Vamos a asignar max para ser igual a pasto agarrar llegar a i Y lo mismo será igual a I. Ahora, después de terminar a partir de esto, vamos a conseguir nuestro bajo y alto. Simplemente podemos imprimir después de terminar de editar este for loop, podemos imprimir a nuestros empleados. Entonces, hacer eso simplemente usaría el método System.out.print. Y vamos a imprimir FirstName y first_name.gov a baja. Entonces vamos a agregar espacio que el apellido, pero bajamos también. Y podemos sumar al empleado con el salario bruto más bajo. Y lo podemos especificar. Y por supuesto, la cruz pero gad a baja. Ahora vamos a copiar pegar este mismo exactamente alineado aquí. No obstante, ahora tenemos que imprimir para el alto acto LastName yo también como el empleado con el salario más alto de, y por supuesto imprimir grass dot me alto. Ahora si ejecuto este código y veamos qué vamos a conseguir. Vamos a conseguir que Stephen Colbert sea el empleado con el salario bruto más bajo de 340. Cristiano Ronaldo es el empleado con el salario bruto más alto de 300 mil. Ahora si volvemos aquí, simplemente
podemos notar, ya que sólo tenemos cuatro empleados, simplemente
puedes notar que se trata de 600. Si bajamos 400,300 mil, entonces este es el más alto y 340 es el más bajo. Y esta información es correcta, como se puede ver aquí. Ahora, otra cosa que hacer es simplemente comparar el sueldo neto en lugar del salario bruto será exactamente el mismo. No obstante, ahora estamos lidiando con dobles. Entonces en lugar de crear nuestros enteros ij, el mínimo y máximo, serán dobles como dobles y los
compararon que encontrar los bajos y altos como de costumbre, después simplemente imprimiendo el primer apellido. Y por supuesto que aquí tenemos que cambiar de pasto a red dos en realidad, déjame hacerlo rápidamente. Entonces aquí necesitamos tener doble, doble Max y luego vamos a comparar la red. Por supuesto aquí, también necesitamos comparar el en eso y por supuesto cambiado. Y aquí también así. Y finalmente net. Y después de terminar desde aquí, necesitamos simplemente modificar aquí también. Y con el salario neto más bajo y el salario neto más alto. Si ejecuto este código una vez más, voy a que Stephen Colbert sea el empleado con el salario neto más bajo de 327. Y Cristiano Ronaldo es el empleado con el salario neto más alto de 1881000. Entonces si vuelvo aquí y me deja solo revisar una vez más. Aquí tenemos el sueldo neto es de 378. Tenemos 440. Y podemos ver que este es el más bajo. Y el más alto es de 288 mil. Ahora, déjame simplemente cambiar el sueldo neto. Date prisa aquí para ser igual a 44. Y en este caso, si subrayé una vez más, vamos a conseguir que Richard Saul sea el empleado con el salario neto más bajo de 44. Y podemos notar que este es ahora el salario neto más bajo en lugar de este 1227. Y esto es en realidad para este ejemplo. Ahora, aprendimos los conceptos básicos de cómo extraer datos de XML usando Java. Ahora, siempre que tengamos un documento XML, podemos aplicar exactamente lo mismo que hicimos aquí. Y vamos a conseguir nuestros datos. Podemos almacenarlos en ArrayList, podemos almacenarlos en un archivo o un IRA o cualquier cosa que queramos. Entonces esto es en básicamente y nos vemos en el siguiente video.
39. JSON: Ahora pasemos a JSON. Y en primer lugar, vamos a aprender qué es JSON y cómo leemos datos de este tipo de archivos? Entonces como podemos ver aquí, tenemos el menú que documenta JSON. Y JSON es sinónimo de notación de objetos JavaScript. Entonces solo déjame seguir adelante y tratar de bajar aquí. Por lo que es sinónimo de notación de objetos de script Java. Y es una autodescripción y fácil de entender. Entonces como puedes ver aquí, tenemos Menú y dentro de este menú tenemos el valor id y pop up. Dentro de pop-up, tenemos estos diferentes valores arriba y abajo, y arriba y documentar. Entonces sigamos adelante y profundizemos y hagamos la sintaxis de JSON. Lo primero que vamos a hacer es tomar un objeto a la vez. Entonces supongamos que tomé esto. Podemos ver que aquí tenemos el valor o un tipo, y le sigue un valor. Entonces como podemos ver, tenemos el nombre, y en este caso es el DNI. Y es entre comillas dobles, como podemos ver, y seguido de la columna y luego el valor de este NAPE, por lo que archivo ID. Y entonces tenemos también el nombre. En este caso lo es, se le llama valor y el valor de esto como archivo con mayúscula F. Ahora, todo en llaves llaves es en realidad un objeto. Entonces cada vez que definimos llaves y escribimos algún código aquí o algunas líneas, estos son un objeto. Podemos suponer que se trata de un objeto. Ahora, cada vez que escribimos corchetes, esto indica que tenemos una matriz. Como podemos ver, esto contiene tres ítems, por lo que esta matriz contiene tres ítems. Entonces este es el objeto uno, el objeto dos, y el objeto tres. Ahora sigamos adelante y creamos nuestro programa Java para que podamos extraer estos datos o información de nuestro archivo JSON. Entonces,
en primer lugar, para usar un centavo y usar los métodos disponibles para nosotros en JSON, tenemos una biblioteca, entidades, una biblioteca específica, y externa en realidad no construye en Java, por lo que necesitamos descargarla. Entonces sigamos adelante y vayamos a Google y download.com. Y aquí tenemos descargar Jason ese tarro. Dejaré un enlace o un vivido toda la biblioteca y la descripción. Ahora tenemos nuestro JSON. Biblioteca. Entonces déjame volver aquí a nuestro código. Y por supuesto, necesitamos extraerlo de nuestras descargas. Por lo que después de tener descargada nuestra biblioteca, puedes acudir a nuestro proyecto, y este caso, este proyecto uno, hacer clic derecho en trayectoria de cinturón y configurar ruta de construcción. Aquí tenemos nuestras bibliotecas y podemos ver que no tenemos ninguna ruta, ninguna biblioteca agregada. Por lo que sólo voy a añadir frascos externos. Y déjame ir al escritorio. Dentro de escritorio tenemos archivos jar profundos. Este es JSON, para que acabamos de agregar aplicar y cerrar, y ahora configuramos para que ahora podamos usar JSON. Permítanme simplemente crear un nuevo paquete específicamente para JSON. Y en este caso, vamos a crear nuestra primera clase y le vamos a nombrar menú. Entonces ahora tenemos nuestro menú de clases y nuestro menú Archivo, ese JSON. Entonces empecemos con este expediente. Extraigamos algunos datos de aquí. Lo primero que vamos a hacer es, como de costumbre, crear nuestro método principal y por supuesto a través de la excepción. Entonces cada vez que lanzamos una excepción y tipos, tipo lanza excepción, esto significa que
vamos a lanzar cualquier excepción que pudiera ocurrir aquí. Y por supuesto no nos referimos a los adders o cern, sólo
queremos decir tal vez excepción de archivo o algo por el estilo. Por lo tanto archivo igual a nuevo archivo. Y en este caso tenemos menú que JSON. Y por supuesto necesitamos importarlo como de costumbre de Java a la IO. Ahora podemos empezar con nuestro jasón. Entonces lo primero que vamos a importar el flujo de entrada de archivos. Entonces flujo de entrada de archivo e importado, vamos a nombrarlo T, o. y en este caso, o tal vez pueda nombrarlo FIOS como flujo de entrada de archivos y creado como inicializador habitual. Por lo que entrada flujo, y tomará el archivo como parámetro. Entonces esto será seguido por el token JSON. Y déjame simplemente escribirlo. Y luego hablamos de ello. Entonces déjame importarlo. Y como pueden ver aquí, permítanme escribir Tokyo enter igual a nuevo JSON Falconer. Y en este caso, permítanme tomarlo como insumo. Stream. Entonces esto es lo que queremos y dentro de este edificio escribir FIS. Por lo que esto se define flujo de entrada. Y ahora que tenemos nuestro tóner jason, En realidad
podemos leer datos del stock interior. Entonces déjame volver a nuestro menú, JSON. Y él, como pueden ver, déjame simplemente borrar esto. Y ya dijimos que cada vez que tenemos llaves, Este es un objeto. Siempre que tengamos corchetes, esta es una matriz. Entonces aquí podemos ver que este es un objeto y éste es un objeto. ¿ Cómo nos enfrentamos a eso? Simplemente podemos crear un objeto JSON. Por lo que el objeto JSON, y esto lo
nombrará, lo nombrará objeto que será igual a nuevo objeto JSON, y tomará toda la URL del token como parámetro. Es así como podemos extraer datos de nuestro archivo JSON si tenemos un objeto. Ahora, vamos a empezar con esto. Ahora tenemos todo nuestro objeto dentro de este objeto. Ahora después de eso, veamos qué, lo que ya tenemos aquí también. Ahora podemos ver que tenemos otro objeto, y esta vez tenemos el nombre que es menú. Entonces, ¿cómo nos enfrentamos a eso? Si queremos extraer estos datos de aquí, simplemente
podemos crear otro objeto JSON, ya que también es un objeto. Y en este caso, vamos a nombrarlo. Por ejemplo, i. Y por supuesto, esto será igual a objetos. Y vamos a usar, Lo siento, tengo objeto. Y si yo JSON, tenemos que conseguir objeto JSON. Por lo que este método nos va a conseguir el objeto y con el menú de nombres. Ahora, también tenemos, déjenme regresar y como pueden ver aquí, tenemos el ID, tenemos el valor, y tenemos el pop-up. Entonces déjame volver aquí y ponerle el nombre. Este será el DNI. Y por supuesto déjame simplemente crear también objeto adyacente para el valor y la ventana emergente. Ahora tenemos ahora vamos a extraer algunos datos. Lo primero que vamos a extraer, déjame volver a nuestro menú, ese JSON. Y podemos ver claramente que tenemos el ID y tenemos el valor que se define. Ahora bien, si quiero extraer el valor de este ID, simplemente
puedo imprimir id dot,
get, string, y decay que es PID. Ahora, como dije antes, podría haber creado este objeto JSON como o y usarlo. Para extraer los datos. Por lo que puedo quitar esto. Y aquí puedo escribir
o.Y ahora si voy adelante y corro esto, voy a conseguir phi. Ahora si quiero, vamos a volver a Menu ese JSON. Si quiero este valor, este F cinco mayúscula, simplemente
puedo devolver getString. Y en este caso voy a devolver el valor y correr. Vamos a conseguir un archivo y archivo. Ahora, como podemos ver aquí, tenemos nuestro pop-up y dentro de este popup Tenemos un objeto. Y dentro de este objeto tenemos el elemento de menú que contiene una matriz de objetos. Entonces hasta ahora tenemos este objeto y este elemento de menú como una matriz. Entonces déjame volver aquí y crear lo que dijimos. Entonces necesitamos un objeto JSON y lo llamaremos Como dijimos. Déjame volver y uno de ellos está pop up y el segundo es, perdón, déjame sólo borrar esto. Y tu Burke. Entonces aquí, uno de ellos es proverbio y el otro es elemento de menú. Por lo que JSON objeto, pop up y Jason por día. Y este es el elemento de menú. Ahora, después de crear estos, simplemente
podemos tomar este pop-up y Dave, el objeto de este pop-up, ¿cómo hacemos eso? Simplemente podemos escribir que necesitamos pop-up para ser iguales a punto. Obtener objeto JSON. Vamos a obtener el objeto JSON en el que tenemos pop-up. Después de eso, vamos a tomar la matriz de elemento de menú dentro de pop-up. El elemento de menú será igual a subir la matriz get JSON. Y necesitamos el ítem Menú. Y ahora terminamos. Contamos con nuestro elemento de menú. Podemos crear un bucle for comenzando en 0 y el elemento de menú esa longitud. Por lo que elemento de menú esa longitud. Y dentro de esto, simplemente podemos obtener el valor del elemento del menú. Entonces permítanme simplemente crear un objeto JSON para devaluar. En realidad puedo crearlo afuera. Por lo que JSON objeto, valor y valor serán iguales al elemento de menú punto obtener objeto JSON. Aquí vamos a conseguir todos los objetos. Entonces este es el primer, segundo, tercer objeto. Por lo que en el índice i, después simplemente imprimió. Vamos a imprimir el valor para obtener fuerza de este valor. Entonces es espacio que valor que getString de desplug. Y ahora considera, así que tenemos devaluación y on-click. Vamos a conseguir ambos valores. Y ahora si ejecuto esto, vamos a conseguir archivo,
archivo como antes, nuevo crear, nuevo documento arriba y arriba y documentar, cerrar, cerrar documento. Entonces como podemos ver aquí, acabamos de extraer estos valores de aquí. Y esto es todo en realidad, esta es una idea general sobre JSON y cómo podemos extraer datos de JSON usando Java. Ahora en el próximo par de videos, vamos a cavar más profundo y a JSON. Y vamos a conseguir ejemplos
mucho más complejos y aprender cómo podemos lidiar con todos y cada uno de ellos. Y vamos a ver que son iguales. No obstante, necesitamos entenderlos y tratarlos con cuidado. Y esto es todo para este video. Nos vemos en el siguiente ejemplo.
40. Ejemplo de Wordpress: Ahora resolvamos otro ejemplo de Jason. Esto es wordpress dot JSON. Y este sencillo ejemplo, déjame seguir adelante y crear otra clase en nuestra declaración de paquete JSON, word press. Como de costumbre, comienza con crear nuestro método principal, lanzando la excepción, luego comenzando con nuestro archivo, por
supuesto, importándolo. Entonces esto es wordpress dot JSON. Ahora que creó nuestro archivo, podemos crear nuestro token JSON. Y por supuesto vamos a empezar con nuestro expediente. Corriente de entrada. Mayo metafile nueva pantalla con el archivo como parámetro. Después de eso, vamos a crear el token JSON son importantes. Entonces esto es todo lo que JSON a la biblioteca que creamos antes. Y por supuesto, vamos a nombrar un documental que sea igual a nuevo token jason y con FIOS como parámetro. Ahora volvamos a nuestro punto de WordPress JSON y veamos qué tenemos aquí. Entonces lo primero que notamos es WordPress dot JSON comienza con una matriz. Como podemos ver aquí, tenemos los corchetes. Y para lidiar con eso, vamos a crear un anuncio al año. Entonces si vuelvo a nuestro menu.html y veo. Y así vamos a notar que cada vez que creamos el objeto JSON, este es un objeto ya que empezó con las llaves que indicaban que se trata de un objeto. No obstante, aquí tenemos los corchetes. Necesitamos crear una matriz. Y para crear esto, simplemente
podemos crear este JSON. Y pongámosle el nombre. En a, será igual a nuevo JSON en una URL de token como parámetro. Entonces como puedes notar, JSON o tratar con JSON en Java es bastante simple. No lleva mucho tiempo, y es sencillo. Por lo que recreó nuestra matriz. Ahora vamos a crear algunos objetos. Por lo que acabo de nombrarlos objeto uno y objeto dos. Entonces objeto, objeto uno, objeto dos. Ahora, claro, déjame volver y vamos a ver, aquí tenemos. Por ejemplo, solo imprimamos el ID y la fecha. Y veamos ¿qué tenemos aquí? También tenemos las categorías y las etiquetas. Por lo tanto, imprimamos. Dijimos que vamos a imprimir ID, fecha y categorías y etiquetas. Como puedes notar aquí, las categorías y etiquetas son matrices y objetos ID y fecha. Entonces aquí tenemos objeto uno, objeto dos, y aquí tenemos objeto JSON. No lo importamos. Y tenemos un caso como dijimos. Entonces tenemos las categorías y también tenemos las etiquetas, creo. Entonces. Sí, básicamente categorías y etiquetas. Ahora, vamos a seguir adelante y crear nuestro objeto de transferencia de objetos uno será igual a un punto get objeto JSON. Tenemos este método maestro. Y como podemos ver, tenemos que sumar un índice aquí. Entonces si agrego índice 0, esto nos dará el primer objeto. Y dentro de esta matriz, como podemos ver, este es el primer objeto. Esto es todo esto es el primer objeto. Entonces aquí tenemos, estamos abriendo los tirantes rizados y él lo va a cerrar. Y como podemos ver, este es solo un objeto, por lo que todos los datos aquí están dentro de este único objeto. Ahora volvamos atrás. Y si sigo adelante e imprimiendo, Déjame sólo imprimir el DNI. Si quiero el ID, simplemente puedes usar. Permítanme simplemente indicar que esta es la idea y usar el objeto uno. Como dijimos, este es objeto un punto. Podemos llegar a fin. Y usando este método, vamos a obtener un entero. Y entramos el id como parámetro. Y ahora si corro esto, me voy a sacar la idea, y esto es 157538. Y esta es exactamente la idea. Ahora bien, si quiero extraer también la fecha, simplemente
puedo escribir que la fecha es. Y los objetos de uso aún no lo eran. Déjenme volver atrás. Entonces esta es una cadena, para que get string y el parámetro es una cadena de fecha. Ahora vamos a correr. Vamos a conseguir la identificación es y la fecha es 2017, y por supuesto la hora. Entonces esto es básicamente para extraer objetos de una matriz. Y aquí estamos usando los métodos getInt y getString ya que sabemos lo que
vamos a extraer respecto para extraer el ID y la fecha. Y este es un método útil en este caso. Ahora vamos a desplazarnos aquí abajo tenemos nuestras categorías y etiquetas. Entonces vamos a crear nuestra categoría primero. Entonces lo primero que vamos a hacer es dejarme. Simplemente ve aquí y la categoría será igual a, como dijimos, objeto one dot get JSON array. En este caso, vamos a conseguir la LDA y lo que sea que tengamos las categorías. Y ahora creamos nuestro día. Si queremos crear las etiquetas también tags object one, dot get JSON agrega a y b Tenemos etiquetas. Ahora como sabemos que sólo tenemos un elemento dentro de este ID, simplemente
puedo usar, simplemente
puedo imprimirlo en realidad, entonces categorías. Y puedo usar el método dot get y vamos a obtener el entero en 0. Después de eso, vamos a imprimir el baile. Y en este caso, sabemos que tenemos más de una etiqueta. Entonces vamos a crear un bucle for comenzando en 0 y terminando la longitud. Perdón, etiquetas de esa longitud. Y esto es básicamente que ahora puedo imprimirlo. Por lo que las etiquetas que se ponen fin en el espacio i. Ahora si corro esto, voy a conseguir el DNI es, la fecha es, y categorías tenemos 6132 y luego seguido de las etiquetas, tenemos dos perros, 17, 986 a 98. Y esta es una idea general sobre este ejemplo de que
volvemos aquí y vemos lo que nos queda. Entonces por ejemplo, tenemos, por lo que estos son los mismos que antes. Esto se modifica o puedes usarlo como ID o una fecha. No obstante, usemos esto. Aquí tenemos la Guía y guía interior me he doblado. Por lo que sabemos que cada vez que usamos llaves, esto indica que tenemos un objeto dentro. Entonces tenemos objeto uno que ha creado un objeto JSON, ya que tenemos otro objeto en este caso que sólo lo nombramos, renderizada. Y renderizado será igual a objeto un punto obtener objeto JSON. Y en este caso, el objeto adyacente es la guía. Y déjame sólo probarlo. Guía. Y después de eso, simplemente
puedo usar un impreso. Por lo que renderizada igual a renderizada que get, déjame volver aquí y renderizada. Podemos usar la cadena GetString y la clave en este caso se renderizará. Y ahora si corro esto y me dejo primero. Entonces aquí nos dieron renderizado y el valor de renderizado. Entonces esto es básicamente. Y así es como podemos usar JSON y extraer datos de Jason y usarlos y nuestro programa Java. Ahora en el siguiente video, vamos a echar un vistazo a otro ejemplo. Y es un poco más complicado, pero la misma idea o los mismos conceptos siguen aplicándose a cada documento adyacente. Entonces nos vemos.
41. Ejemplo de glosario de glosario: Hola y bienvenidos de nuevo a ti Jason ejemplo. Y en este caso tenemos glosario que JSON. Y este es nuestro expediente. Y podemos ver que este ejemplo es un poco más complicado que los demás, ya que tenemos algunos objetos que están anidados o dentro de otros objetos, como podemos ver aquí, tenemos la lista. Dentro de la lista de vidrio, tenemos un objeto, y este objeto está dentro del último div, y glass div está dentro del glosario y así sucesivamente. Entonces ahora vamos a crear nuestro archivo JSON o Java. Y esta es nuestra clase. Démosle un nombre glosario. Y empecemos como de costumbre hecho y arroje la excepción. Entonces comienza con nuestro phi, phi igual a o y glosario que JSON. Y ahora podemos crear nuestro token JSON. Y esto es igual a nu Jason. Y lo siento. El que necesitamos para crear nuestro flujo de entrada de archivos. Totalmente olvidado. Y flujo de
entrada de archivo . Y luego después de eso, damos esta plática Jason, esta FIS como parámetro. Y después de eso podemos empezar con nuestro código JSON. Entonces lo primero que podemos notar aquí es realmente crear el token JSON o es que n, nuestro glosario, tenemos un objeto. Por lo que empezamos con la creación del objeto. Lo primero es objeto JSON. Y en este caso, vamos a nombrarlo el objeto igual al nuevo objeto JSON. Y se llevará el documento. Después de eso. Podemos crear nuestros otros objetos para que podamos ver que tenemos el objeto glosario. Entonces tenemos el objeto cluster, cristal list object plus N3 y brillo sordo. Entonces vamos a crearlos aquí, todos a la vez. Entonces tenemos un glosario. Después la pérdida, seguida por el vaso, luego el sin ley y el árbol, y finalmente el vaso, sordo. Y así estos son nuestros objetos. Y nuestro objetivo es imprimir algunos de los elementos aquí de algunos de los datos. Y necesitamos imprimir esto a un. así que permítanme simplemente crear esta matriz y JSON. Un día. Y plus c también. Entonces esto es básicamente ahora podemos empezar con la extracción de datos. Entonces lo primero que vamos a extraer es el título. Como podemos ver aquí tenemos el título. Entonces esto es después de crear el objeto. Lo primero que vamos a hacer es tomar glosario para ser igual a lo primero, el objeto y
el USD para obtener el objeto JSON. Y llegamos a conseguir un glosario. Y después de eso, después de conseguir este fin de semana de glosario de abarrotes, simplemente imprime el título, el título como y el glosario. Por supuesto. Glosario. Y consigue, vamos a conseguir la cuerda con el título clave. Y si ejecuto esto, vamos a revisar. Este es el título como ejemplo glosario. Si volvemos aquí, el título es en realidad ejemplo x, así que esto es correcto. Ahora después de crear este objeto, podemos notar que gloss live es otro objeto. Por lo que podemos usar glosario y extraer los objetos del glosario. Por lo que tenemos más f. En este caso, será igual al punto Glosario. Obtener objeto JSON. Y en este caso tenemos, déjame volver atrás y probarlo correctamente. Tenemos muerte de cristal. Y esto en realidad es div de vidrio. Ahora tenemos nuestro objeto plus live. Si por ejemplo, por un extra, extraiga el título. En este caso, simplemente puedo imprimir el segundo título como y el getString y el título. Hecho. Vamos a conseguir el segundo título es S, y este es el caso aquí. Ahora también podemos notar que aquí tenemos otro objeto que es sin pérdidas. Entonces haremos exactamente lo mismo aquí. Entonces más L2 será igual al punto get objeto JSON. Y tenemos plus. Y déjame simplemente imprimir algo de la lista de vidrio. En realidad no tenemos nada dentro. Déjame sólo revisar. Aquí. Necesitamos crear otro objeto que sea para la entrada de brillo. Y en este caso, vidrio. Y tres serán iguales a la lista de vidrio que obtengan objeto JSON más N3. Y después de eso, volvamos aquí. Podemos ver que dentro de vidrio y dos, tenemos identificación y en término de vidrio, vamos a imprimirlos sólo para asegurarnos de que vamos por el buen camino. Entonces llegamos a imprimir. El ID y uso LAS y tree dot get. Y volvamos aquí para comprobar que el id es una fuerza de get string. Y esta es la idea. Ahora corre. Vamos a conseguir identificación como g, m, l. Y esto es correcto. Y la otra cosa es, déjame usarla aquí. Y necesitamos extraer bluster. Entonces gire y use vidrio y una vez más. Pero getString como de costumbre, ya que esto es una cadena. Y el año pasado, vamos a conseguir GlusterFS, lenguaje
Standard Generalized Markup. Y esto también es correcto. Ahora llegamos a un punto en el que estamos extrayendo datos en realidad de esta fase. Ahora, en realidad podemos ver que la muerte por explosión es otro objeto. Por lo que ya tenemos aquí la muerte de vidrio como objeto. Y simplemente podemos hacer exactamente lo mismo que antes. Por lo que el vidrio, el será igual a plus y trato que obtengan objeto JSON y en este caso vidrio. Y solo extrayamos algo de ti. Déjame ver qué pasa. Y cambiar tipo de, lo siento, aquí necesitamos crear un objeto, obtener objeto JSON. Y ahora estamos bien. Dentro de un nervio de vidrio. Tenemos el párr. Entonces déjame solo imprimir como y más el getString. Y en este caso, simplemente
vamos a imprimir lo que tengamos Empire. Ejecuta este código. Vamos a conseguir un lenguaje de metamarkup usado para crear lenguajes de marcado como notebook. Y esto también es correcto. Lo último que vamos a hacer es usar la matriz que creamos antes e imprimir g, m, l XML aquí. Por lo que ya tenemos esto. Entonces esto es brillante también, es una actualización y déjame usarlo aquí. Entonces vidrio C también, y en este caso, será igual a un plus el get JSON a un. y en este caso, esto es plus C también. Y vamos a crear un bucle for para pasar a través de todos los elementos dentro de la matriz, empezando por i igual a 0 y terminando con cristal. También esa longitud. Y por supuesto podemos imprimir más C también. Y, y vamos a conseguir la cuerda en el índice i. Y déjame solo imprimir aquí solo para saber qué nos hemos ido. Y así esto es un plus c. También a. Y por supuesto, déjame ajustar esto y algunos espacios en blanco corren una vez más. Nos vamos a poner brillante también en un GM L y XML. Y esto es básicamente, esto se considera como un archivo JSON complicado para extraer datos y Java. Y es la misma idea en realidad que antes. Basta con seguir el camino recreado. Entonces cada vez que vemos llaves, creamos un objeto. Siempre que vemos un corchetes, creamos un a y así sucesivamente. Entonces ahora extraímos algunos de los datos de este archivo, y esto es todo básicamente para este video. En el siguiente video vamos a hacer un ejemplo más. Entonces nos vemos.
42. Ejemplo de la prueba: Ahora pasemos al último ejemplo de Jason. Y en este caso, tenemos un quiz que archivo JSON. En primer lugar, permítanme simplemente crear nuestra clase. Entonces esta es nuestra clase Java como de costumbre. Y tenemos quiz, lo siento, solo refactorizado nombre clave y terminar. Y como de costumbre, crear un método principal, la excepción. Y luego crea el archivo. Entonces si phi igual a comprar y quién es el adyacente, entonces flujo de entrada de archivo VHD,
stream , y luego crear el token JSON. Y en este caso, vamos a nombrar un token igual a nuevo token JSON a y phi S como parámetro. Ahora si vuelves aquí, no
podemos decir que se trata de un objeto. Entonces lo primero que vamos a hacer es crear el objeto al objeto JSON. Objeto igual al nuevo objeto JSON. Lo siento, aquí simplemente podemos usar el centro de desintoxicación aquí. Y estamos bien. Entonces ahora tenemos nuestro objeto. Este es nuestro principal objeto. Y si retrocedemos una vez más, se
puede ver que tenemos esto. Este es el primer objeto o el primer elemento dentro del objeto, y éste es el segundo. Entonces, ¿cómo lidiar con eso? Simplemente podemos crear un objeto de quiz. Y dentro de este objeto de quiz, vamos a tomar del objeto principal para obtener objeto JSON y necesitamos el quiz. Entonces tenemos también, como dijimos, tenemos la exportación. Y por supuesto dentro de la búsqueda tenemos pregunta uno y pregunta uno Y las matemáticas. Por lo que dentro del quiz tenemos botín y matemáticas. Y en este caso tenemos pregunta uno y deporte y pregunta uno y pregunta dos, m. Así que hemos espolulado y q uno, q dos. Y por supuesto, ahora que tenemos nuestros objetos JSON con los que podemos empezar es igual al objeto get JSON. Vamos a conseguir el objeto JSON con deporte. Y Después de eso, podemos conseguir, así que ahora estamos aquí y el deporte. Y dentro del deporte tenemos Q1, eso también es un objeto. Por lo que Q1 será igual para avisar el objeto get JSON y Q1. Ahora estamos dentro de la Q1, Tenemos una pregunta y opciones y seguido de la respuesta. Entonces déjame solo bucear o imprimir la pregunta. Entonces como dijimos pregunta como d primero. Por lo que simplemente podemos escribir la pregunta como. Y luego podemos escribir por un enorme Q1 que se salta y cuestiona. Pero ahora si corro esto, voy a conseguir la pregunta. Es decir, la pregunta es cuál es el nombre correcto del equipo en la NBA. Ahora después de eso, simplemente puedo crear un adicto ya que estas opciones dentro de esta matriz. Entonces Jason, y déjame ponerle el nombre opciones iguales a Q1. Se obtiene matriz JSON. Y tenemos opciones. Después de eso, podemos crear nuestro bucle for comenzando en el índice i igual a 0 y terminando opciones de esa longitud. Ahora simplemente podemos imprimir todas las opciones. Por lo que tenemos opción i más uno y seguido de la opción en sí. Entonces plus opción que obtener cadena y en índice por ejecutar esto solo para comprobar. Vamos a conseguir, porque en S, cuál es correcto le nombre en la NBA, vamos a conseguir opciones por defecto después de eso. Ahora podemos imprimir la respuesta. En este caso, la respuesta será simplemente respuesta como y seguida de la respuesta misma. Entonces Q1, eso se bebió. Locutor. Y ahora si ejecuto este código una vez más, vamos a conseguir la respuesta como cohete Huston. Ahora después de eso, también tenemos la pregunta uno y la pregunta dos, n, las matemáticas. Entonces sigamos adelante y creemos nuestro objeto matemático. Misa será igual a, como dijimos, fue el objeto get JSON. Y en este caso tenemos matemáticas. Y después de eso, podemos volver a las matemáticas. Podemos ver que dentro de las matemáticas tenemos dos objetos, es
decir, Q1 y Q2. Por lo que simplemente podemos crear Q1 será igual a un punto matemático, obtener objeto JSON como Q1. Y por supuesto, q para ser igual a la misma cosa adyacente en la Q2. Después de eso, podemos trabajar con cada pregunta a la vez. Entonces lo primero que vamos a imprimir como, la primera pregunta como y luego seguida de la Q1 que se ponen, lo
siento conseguir cadena. Y vamos a sacar la pregunta en sí. Después de eso, vamos a almacenar y añadir muchas opciones. Entonces opciones, estaremos, lo siento, aquí vamos a escribir Opciones Q1 dot get JSON array at Options. Y luego después de crear esto en un, simplemente
podemos crear nuestro for loop como antes, comenzando en 0 y agregar opciones de esa longitud que imprimir cada opción. Entonces opciones que getString ese índice i que vamos a imprimir la respuesta. Entonces la respuesta como y por supuesto seguida de P1 punto GetString incierta. Por lo que ahora el fuego y el descarte va a conseguir lo siguiente. Entonces la pregunta es, cuál es correcto su nombre en la NBA? Esta es la primera parte. Segunda parte la pregunta como cinco más siete iguales, tenemos 10111213 y la respuesta es 12. Y en este caso, todavía
tenemos la pregunta también y las matemáticas. Por lo que simplemente puedo escribir la segunda pregunta. Y para ser Q2 esa pregunta GetString. Y en este caso, después de escribir la pregunta, también
podemos usar la misma opción. Y será igual a Q2, el get JSON, agregue un. y por supuesto, opciones que necesitas crear antes bucle como antes. Y estos mismos límites. Opciones que longitud. Después imprime todas las opciones que se beben. Y después de eso, podemos escribir la respuesta o imprimir la respuesta. Entonces la respuesta es e
imprime q2 dot get answer. Después de eso. Déjame ejecutar este código una vez más. Entonces esto es para el primer quiz. Y luego tenemos las matemáticas. El primer interrogante es cinco más siete. Entonces la respuesta es 12. La segunda pregunta es 12 menos ocho, la respuesta es cuatro. Entonces, sólo para dejarlos en claro, simplemente
podemos dividir esto. Después de terminar de este, simplemente
podemos imprimir algunos iguales. Y por supuesto, podemos saltarnos una fila aquí. Y después de eso. Y después de la primera pregunta, también
podemos escalar corrida alineada. Vamos a conseguir esto. Entonces esta es la primera pregunta. Entonces la pregunta es ¿cuál? Como de costumbre? Y luego tenemos a las chicas de matemáticas y este caso tenemos dos preguntas. Entonces esta es la primera pregunta y seguida de la segunda pregunta como podemos ver aquí. Entonces esto es básicamente para JSON. Aprendimos cómo podemos extraer datos y cómo usarlos en nuestro código Java. Escrito siempre decía estos datos y sumar días menos o cualquier cosa que queramos. Si por ejemplo, acabamos de conseguirlos como una cuerda e imprimirlos directamente. No obstante, podríamos tener justo entonces esto y almacenarlo en una cuerda, luego hacer lo que queramos con él. Podemos imprimirlo y podemos modificarlo. O podemos simplemente obtener algunos enteros, sumarlos juntos y obtener el promedio de algo, por ejemplo. Y este es este archivo o documento JSON, funciona exactamente como cualquier otro archivo. Podemos hacer lo que queramos con los datos una vez extraídos y de manera correcta. Y esto es básicamente para JSON. Con eso dicho, este es el fin de esta floración. Nos vemos en el siguiente.
43. PROYECTO: Por lo que nuestro proyecto es crear una cuenta ya sea para estudiante o instructor. Este es nuestro método principal y deja que lo veas y necesitas crear el estudiante de clase de cuenta e instructor como hijos de esta cuenta de clase de padres. Ahora, sigamos adelante y veamos qué hace esta clase. Entonces si seguimos adelante y ejecutamos el código y obtenemos estudiante o instructor. Entonces por supuesto somos estudiantes. Y pedirnos que introduzcamos nuestro nombre y apellido como la computadora mayor. Y G. Y debo ingresar a mis cursos. Por ejemplo, digamos que estoy llevando CoA a uno, Inglés 101 y física. Para ir a. Ahora, se crea mi cuenta, tenía sindicatos estudiante, mi DNI es uno de los principales cursos de ingeniería informática. Y para pedirnos que lo intentemos de nuevo. Inténtalo de nuevo. Escriba sí. Supongamos que se nos instruye Ahora. Nombre y apellido. Entonces Alex, el departamento, vamos a ver. Entonces los cursos que estoy impartiendo, digamos dos. Y así esta cuenta también se crea Alexei instructor, cursos de finanzas
departamentales impartiendo estos y sin idea porque el instructor no tiene 90. Ahora, si presiono enter por error, obtendré entrada inválida. Si quiero volver a intentarlo,
por ejemplo, inténtalo de nuevo. minúsculas. Supongamos que un estudiante primero y último. Por ejemplo, una mayor. Supongamos ingeniería eléctrica y cursos a un uno ELE D03. Y también se crea esta cuenta y la idea es ahora, ya que estamos a los estudiantes ahora, deontología. Y por último, si por ejemplo tecleamos por error, obtendrá entrada inválida para volver a intentarlo una vez más. Entonces si no queremos volver a intentarlo, simplemente escribe no. Y este es el fin del programa. Ahora, tu estudiante e instructor. En primer lugar, empezamos con estudiante. Tenemos clase y aquí tenemos algunos métodos. En primer lugar, necesitas crear un constructor usando un objeto Student. Y luego necesitamos establecer la mayor y establecer cursos y clases de instructor. Tenemos el constructor para tomar sólo dos parámetros. Aquí, tenemos tres parámetros, tenemos el ID y tenemos dos métodos, set courses y set department. Y también tenemos más si se trata de una entrada inválida y mientras entramos algo diferente a sí o no, seguimos preguntando al programa y seguimos pidiendo al usuario que vuelva a intentarlo. Entonces esto es todo para el proyecto. Y espero que lo disfruten y nos veamos en el siguiente video.
44. Recapitulación: Entonces este es el fin de la clase. En primer lugar, hablamos de herencia y polimorfismo. Después pasamos a la recursión y algunos, resolvieron algunos problemas en este tema. Después hablamos de ordenar y buscar algoritmos. Y por supuesto, al final resolvimos algunos problemas en cada tema. Y tenemos nuestro proyecto. Entonces esto es todo para esta clase. En la siguiente clase, hablaremos sobre el análisis XML y JSON. Aprendimos a analizar JSON y XML usando Java. Y luego hablamos de pilas y colas y las usamos en nuestra lista de San Luis y doble enlazada. Y por último, hablaremos de clase de colecciones y cómo usar, sí úsalo en Java. Espero que esta clase fuera benéfica. Y nos vemos en el siguiente.