[{"data":1,"prerenderedAt":1200},["ShallowReactive",2],{"navigation_docs":3,"-ejemplos-ejemplo-02":412,"-ejemplos-ejemplo-02-surround":1195},[4,18,43,118,160,200,231,320,346],{"title":5,"path":6,"stem":7,"children":8,"icon":17},"Evaluación","\u002Fintroduction","1.introduction\u002F1.index",[9,12],{"title":10,"path":6,"stem":7,"icon":11},"Método de Evaluación","i-iconamoon-cheque-bold",{"title":13,"path":14,"stem":15,"icon":16},"Plataforma de Aprendizaje","\u002Fintroduction\u002Fplataforma","1.introduction\u002F2.plataforma","i-lucide-book-marked","i-lucide-house",{"title":19,"icon":20,"path":21,"stem":22,"children":23,"page":42},"Entorno de desarrollo","i-codicon-edit-code","\u002Fide","2.ide",[24,28,33,37],{"title":25,"path":26,"stem":27,"icon":20},"¿Qué es un IDE?","\u002Fide\u002Fentorno","2.ide\u002F1.entorno",{"title":29,"path":30,"stem":31,"icon":32},"Estructura de un Proyecto","\u002Fide\u002Festructura","2.ide\u002F2.estructura","i-clarity-tree-view-line",{"title":34,"path":35,"stem":36,"icon":20},"La compilación en un IDE","\u002Fide\u002Fcompilacion","2.ide\u002F3.compilacion",{"title":38,"path":39,"stem":40,"icon":41},"Depuración de Código","\u002Fide\u002Fdepurar","2.ide\u002F4.depurar","i-lucide-bug",false,{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":42},"Clases y Objetos","i-catppuccin-java-class","\u002Fclases-objetos","3.clases-objetos",[49,53,57,62,66,70,74,78,83,88,92,96,101,106,110,114],{"title":50,"path":51,"stem":52},"Repaso previo a Clases y Objetos","\u002Fclases-objetos\u002Fpreview","3.clases-objetos\u002F00.preview",{"title":54,"path":55,"stem":56,"icon":45},"¿Qué es la Programación Orientada a Objetos (POO)?","\u002Fclases-objetos\u002Fpoo","3.clases-objetos\u002F01.poo",{"title":58,"path":59,"stem":60,"icon":61},"Diagramas de Clases y Objetos","\u002Fclases-objetos\u002Fdiagramas","3.clases-objetos\u002F02.diagramas","i-devicon-uml",{"title":63,"path":64,"stem":65,"icon":45},"Las Clases","\u002Fclases-objetos\u002Fclases","3.clases-objetos\u002F03.clases",{"title":67,"path":68,"stem":69,"icon":45},"Ámbito y Visibilidad","\u002Fclases-objetos\u002Fambito","3.clases-objetos\u002F04.ambito",{"title":71,"path":72,"stem":73,"icon":45},"Declaración e Instanciación de Objetos","\u002Fclases-objetos\u002Fobjetos","3.clases-objetos\u002F05.objetos",{"title":75,"path":76,"stem":77,"icon":45},"Clases Predefinidas en Java","\u002Fclases-objetos\u002Fpredefinidas","3.clases-objetos\u002F06.predefinidas",{"title":79,"path":80,"stem":81,"icon":82},"Paquetes en Java","\u002Fclases-objetos\u002Fpaquetes","3.clases-objetos\u002F07.paquetes","i-material-icon-theme-folder-java-open",{"title":84,"path":85,"stem":86,"icon":87},"Las Excepciones","\u002Fclases-objetos\u002Fexcepciones","3.clases-objetos\u002F08.excepciones","i-catppuccin-java-exception",{"title":89,"path":90,"stem":91,"icon":45},"La clase JOptionPane","\u002Fclases-objetos\u002Fjoptionpane","3.clases-objetos\u002F09.joptionpane",{"title":93,"path":94,"stem":95,"icon":45},"Constructores y Accesores","\u002Fclases-objetos\u002Fconstructores","3.clases-objetos\u002F10.constructores",{"title":97,"path":98,"stem":99,"icon":100},"Tipos Enumerados (Enums)","\u002Fclases-objetos\u002Fenumerados","3.clases-objetos\u002F11.enumerados","i-catppuccin-java-enum",{"title":102,"path":103,"stem":104,"icon":105},"Modificadores de acceso static y final","\u002Fclases-objetos\u002Fmodificadores","3.clases-objetos\u002F12.modificadores","i-mdi-chart-box",{"title":107,"path":108,"stem":109,"icon":105},"El casting en Java","\u002Fclases-objetos\u002Fcasting","3.clases-objetos\u002F13.casting",{"title":111,"path":112,"stem":113},"Las Expresiones Regulares","\u002Fclases-objetos\u002Fexpresiones-regulares","3.clases-objetos\u002F14.expresiones-regulares",{"title":115,"path":116,"stem":117,"icon":105},"Clases Genéricas en Java","\u002Fclases-objetos\u002Fclases-genericas","3.clases-objetos\u002F15.clases-genericas",{"title":119,"icon":120,"path":121,"stem":122,"children":123,"page":42},"Funciones (Métodos)","i-material-symbols-function","\u002Fmetodos","4.metodos",[124,128,132,136,140,144,148,152,156],{"title":125,"path":126,"stem":127},"Funciones Genéricas","\u002Fmetodos\u002Ffuncion-generica","4.metodos\u002F01.funcion-generica",{"title":129,"path":130,"stem":131},"Métodos de Instancia y de Clase","\u002Fmetodos\u002Finstancia-clase","4.metodos\u002F02.instancia-clase",{"title":133,"path":134,"stem":135},"Sobrecarga de Funciones","\u002Fmetodos\u002Fsobrecarga","4.metodos\u002F03.sobrecarga",{"title":137,"path":138,"stem":139},"Alcance de Variables y Métodos","\u002Fmetodos\u002Falcance","4.metodos\u002F04.alcance",{"title":141,"path":142,"stem":143},"Recursividad","\u002Fmetodos\u002Frecursividad","4.metodos\u002F05.recursividad",{"title":145,"path":146,"stem":147},"Puntero this","\u002Fmetodos\u002Fthis","4.metodos\u002F06.this",{"title":149,"path":150,"stem":151},"Los argumentos variables (varargs)","\u002Fmetodos\u002Fvarargs","4.metodos\u002F07.varargs",{"title":153,"path":154,"stem":155},"La clase Arrays","\u002Fmetodos\u002Farrays","4.metodos\u002F08.arrays",{"title":157,"path":158,"stem":159},"Predicados Simples y Compuestos en Java","\u002Fmetodos\u002Fpredicados","4.metodos\u002F09.predicados",{"title":161,"path":162,"stem":163,"children":164,"icon":199},"Herencia","\u002Fherencia","5.herencia\u002F01.index",[165,167,171,175,179,183,187,191,195],{"title":166,"path":162,"stem":163},"¿Qué es la herencia?",{"title":168,"path":169,"stem":170},"Sobreescritura de métodos y uso de `super`","\u002Fherencia\u002Fsobeescritura","5.herencia\u002F02.sobeescritura",{"title":172,"path":173,"stem":174},"Tipos de herencia","\u002Fherencia\u002Ftipos-herencia","5.herencia\u002F03.tipos-herencia",{"title":176,"path":177,"stem":178},"La clase Object en Java","\u002Fherencia\u002Fobject","5.herencia\u002F04.object",{"title":180,"path":181,"stem":182},"Polimorfismo","\u002Fherencia\u002Fpolimorfismo","5.herencia\u002F05.polimorfismo",{"title":184,"path":185,"stem":186},"Clases y Funciones Abstractas","\u002Fherencia\u002Fabstract","5.herencia\u002F06.abstract",{"title":188,"path":189,"stem":190},"Interfaces","\u002Fherencia\u002Finterfaces","5.herencia\u002F07.interfaces",{"title":192,"path":193,"stem":194},"Funciones e Interfaces","\u002Fherencia\u002Ffunciones-interfaces","5.herencia\u002F08.funciones-interfaces",{"title":196,"path":197,"stem":198},"Interfaces y Funciones Lambda","\u002Fherencia\u002Flambda-interface","5.herencia\u002F09.lambda-interface","i-material-symbols-heritage",{"title":201,"path":202,"stem":203,"children":204,"icon":199},"Arreglos","\u002Farreglos","6.arreglos\u002F01.index",[205,207,211,215,219,223,227],{"title":206,"path":202,"stem":203},"Los arreglos en Java",{"title":208,"path":209,"stem":210},"Los arreglos","\u002Farreglos\u002Farray","6.arreglos\u002F02.array",{"title":212,"path":213,"stem":214},"Matrices","\u002Farreglos\u002Fmatrices","6.arreglos\u002F03.matrices",{"title":216,"path":217,"stem":218},"Comparadores","\u002Farreglos\u002Fcomparator","6.arreglos\u002F04.comparator",{"title":220,"path":221,"stem":222},"Arreglos dinámicos: ArrayList","\u002Farreglos\u002Farraylist","6.arreglos\u002F05.arraylist",{"title":224,"path":225,"stem":226},"Arreglos Relacionales: HashMap","\u002Farreglos\u002Fhashmap","6.arreglos\u002F06.hashmap",{"title":228,"path":229,"stem":230},"La clase Stream en Java","\u002Farreglos\u002Fstream","6.arreglos\u002F07.stream",{"title":232,"icon":199,"path":233,"stem":234,"children":235,"page":42},"Archivos e Interfaz de Usuario","\u002Farchivos-ui","7.archivos-ui",[236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316],{"title":237,"path":238,"stem":239},"El paquete Swing","\u002Farchivos-ui\u002Fswing","7.archivos-ui\u002F01.swing",{"title":241,"path":242,"stem":243},"La clase JFrame y el JPanel","\u002Farchivos-ui\u002Fjpanel","7.archivos-ui\u002F02.jpanel",{"title":245,"path":246,"stem":247},"Los Layouts en Swing","\u002Farchivos-ui\u002Flayout","7.archivos-ui\u002F03.layout",{"title":249,"path":250,"stem":251},"Iniciando con Swing","\u002Farchivos-ui\u002Finiciando","7.archivos-ui\u002F04.iniciando",{"title":253,"path":254,"stem":255},"Las clases Color y Font en Swing","\u002Farchivos-ui\u002Fcolor-font","7.archivos-ui\u002F05.color-font",{"title":257,"path":258,"stem":259},"Etiquetas en Swing","\u002Farchivos-ui\u002Fetiquetas","7.archivos-ui\u002F06.etiquetas",{"title":261,"path":262,"stem":263},"Personalizando la apariencia de los componentes en Swing","\u002Farchivos-ui\u002Fpersonalizando","7.archivos-ui\u002F07.personalizando",{"title":265,"path":266,"stem":267},"Sobrescribiendo el método drawComponent() en Swing","\u002Farchivos-ui\u002Fdraw","7.archivos-ui\u002F08.draw",{"title":269,"path":270,"stem":271},"Manejando eventos en Swing","\u002Farchivos-ui\u002Feventos","7.archivos-ui\u002F09.eventos",{"title":273,"path":274,"stem":275},"Personalización de Componentes mediante la Extensión de Clases en Swing","\u002Farchivos-ui\u002Fextends-component","7.archivos-ui\u002F10.extends-component",{"title":277,"path":278,"stem":279},"Gradientes","\u002Farchivos-ui\u002Fgradientes","7.archivos-ui\u002F11.gradientes",{"title":281,"path":282,"stem":283},"Botones en Swing","\u002Farchivos-ui\u002Fbotones","7.archivos-ui\u002F12.botones",{"title":285,"path":286,"stem":287},"Los delegadores en Swing","\u002Farchivos-ui\u002Fdelegadores","7.archivos-ui\u002F13.delegadores",{"title":289,"path":290,"stem":291},"UI para nuestro RPG: Parte 1","\u002Farchivos-ui\u002Frpg-ui-1","7.archivos-ui\u002F14.rpg-ui-1",{"title":293,"path":294,"stem":295},"UI para nuestro RPG: Parte 2","\u002Farchivos-ui\u002Frpg-ui-2","7.archivos-ui\u002F15.rpg-ui-2",{"title":297,"path":298,"stem":299},"Los Streams Entrada y Salida","\u002Farchivos-ui\u002Fstreams","7.archivos-ui\u002F16.streams",{"title":301,"path":302,"stem":303},"Archivo tipo Objeto","\u002Farchivos-ui\u002Farchivo-objeto","7.archivos-ui\u002F17.archivo-objeto",{"title":305,"path":306,"stem":307},"UI para nuestro RPG: Parte 3","\u002Farchivos-ui\u002Frpg-ui-3","7.archivos-ui\u002F18.rpg-ui-3",{"title":309,"path":310,"stem":311},"UI para nuestro RPG: Parte 4","\u002Farchivos-ui\u002Frpg-ui-4","7.archivos-ui\u002F19.rpg-ui-4",{"title":313,"path":314,"stem":315},"UI para nuestro RPG: Parte 5","\u002Farchivos-ui\u002Frpg-ui-5","7.archivos-ui\u002F20.rpg-ui-5",{"title":317,"path":318,"stem":319},"UI para nuestro RPG: Parte 6","\u002Farchivos-ui\u002Frpg-ui-6","7.archivos-ui\u002F21.rpg-ui-6",{"title":321,"icon":322,"path":323,"stem":324,"children":325,"page":42},"Ejemplos","i-check-circle","\u002Fejemplos","8.ejemplos",[326,330,334,338,342],{"title":327,"path":328,"stem":329,"icon":105},"Ejemplo 1: Validando entradas con JOptionPane","\u002Fejemplos\u002Fejemplo-01","8.ejemplos\u002F01.ejemplo-01",{"title":331,"path":332,"stem":333},"Ejemplo 02: Uso de clases genéricas en Java","\u002Fejemplos\u002Fejemplo-02","8.ejemplos\u002F02.ejemplo-02",{"title":335,"path":336,"stem":337},"Ejemplo 03: Uso de Enum, Excepciones en Java","\u002Fejemplos\u002Fejemplo-03","8.ejemplos\u002F03.ejemplo-03",{"title":339,"path":340,"stem":341},"Ejemplo 4: Clase con funciones genéricas de validación","\u002Fejemplos\u002Fejemplo-04","8.ejemplos\u002F04.ejemplo-04",{"title":343,"path":344,"stem":345},"Ejemplo 5: Sistema de Gestión de Empleados","\u002Fejemplos\u002Fejemplo-05","8.ejemplos\u002F05.ejemplo-05",{"title":347,"icon":322,"path":348,"stem":349,"children":350,"page":42},"Actividades","\u002Factividades","9.actividades",[351,355,360,364,368,372,376,380,384,388,392,396,400,404,408],{"title":352,"path":353,"stem":354,"icon":105},"Actividad 1: Infografía sobre el proceso de compilación","\u002Factividades\u002Fact-01","9.actividades\u002F01.act-01",{"title":356,"path":357,"stem":358,"icon":359},"Actividad 2: Modelando Diagramas de Clases UML","\u002Factividades\u002Fact-02","9.actividades\u002F02.act-02","i-material-icon-theme-uml",{"title":361,"path":362,"stem":363,"icon":45},"Actividad 3: Creando Clases y Objetos en Java","\u002Factividades\u002Fact-03","9.actividades\u002F03.act-03",{"title":365,"path":366,"stem":367},"Actividad 4: Validando entradas de datos","\u002Factividades\u002Fact-04","9.actividades\u002F04.act-04",{"title":369,"path":370,"stem":371,"icon":105},"Actividad 5: Implementando una clase genérica","\u002Factividades\u002Fact-05","9.actividades\u002F05.act-05",{"title":373,"path":374,"stem":375,"icon":105},"Actividad 6: Expandiendo InputValidator con Predicados y Function","\u002Factividades\u002Fact-06","9.actividades\u002F06.act-06",{"title":377,"path":378,"stem":379,"icon":105},"Actividad 7: Gestor de Biblioteca con InputValidator","\u002Factividades\u002Fact-07","9.actividades\u002F07.act-07",{"title":381,"path":382,"stem":383,"icon":105},"Actividad 8: Calculadora de Figuras Geométricas","\u002Factividades\u002Fact-08","9.actividades\u002F08.act-08",{"title":385,"path":386,"stem":387,"icon":105},"Actividad 9: gestión de una empresa agroalimentaria","\u002Factividades\u002Fact-09","9.actividades\u002F09.act-09",{"title":389,"path":390,"stem":391,"icon":105},"Actividad 10: Sistema de gestión de clínicas veterinarias","\u002Factividades\u002Fact-10","9.actividades\u002F10.act-10",{"title":393,"path":394,"stem":395},"Definición de Proyecto Evolutivo","\u002Factividades\u002Frpg","9.actividades\u002F11.rpg",{"title":397,"path":398,"stem":399},"Actividad 11: Creación de Personajes","\u002Factividades\u002Fact-11","9.actividades\u002F12.act-11",{"title":401,"path":402,"stem":403},"Actividad 12: El Inventario y los Objetos","\u002Factividades\u002Fact-12","9.actividades\u002F13.act-12",{"title":405,"path":406,"stem":407},"Actividad 13: El combate por turnos","\u002Factividades\u002Fact-13","9.actividades\u002F14.act-13",{"title":409,"path":410,"stem":411},"Actividad 14: Guardando y Cargando","\u002Factividades\u002Fact-14","9.actividades\u002F15.act-14",{"id":413,"title":331,"body":414,"description":1189,"extension":1190,"links":1191,"meta":1192,"navigation":510,"path":332,"seo":1193,"stem":333,"__hash__":1194},"docs\u002F8.ejemplos\u002F02.ejemplo-02.md",{"type":415,"value":416,"toc":1181},"minimark",[417,422,426,430,435,447,878,881,934,938,948,1164,1170,1174,1177],[418,419,421],"h2",{"id":420},"descripción-del-problema","Descripción del Problema",[423,424,425],"p",{},"Eres un desarrollador de software que necesita crear una clase de lista personalizada en Java que pueda almacenar cualquier tipo de datos. Quieres utilizar clases genéricas para lograr esto, pero no estás seguro de cómo implementarlo correctamente.",[418,427,429],{"id":428},"solución","Solución",[431,432,434],"h3",{"id":433},"paso-1-crear-la-clase-genérica","Paso 1: Crear la clase genérica",[423,436,437,438,442,443,446],{},"Primero, creamos una clase genérica llamada ",[439,440,441],"code",{},"MiLista"," que puede almacenar cualquier tipo de datos. Utilizamos el símbolo ",[439,444,445],{},"\u003CT>"," para indicar que esta clase es genérica y puede aceptar cualquier tipo de dato.",[448,449,454],"pre",{"className":450,"code":451,"language":452,"meta":453,"style":453},"language-java shiki shiki-themes github-dark","public class MyList\u003CT> {\n    private Object[] elements;\n    private int size;\n\n    public MyList() {\n        elements = new Object[10];\n        size = 0;\n    }\n\n    public void add(T element) {\n        if (size == elements.length) {\n            resize();\n        }\n        elements[size++] = element;\n    }\n\n    public T get(int index) {\n        if (index \u003C 0 || index >= size) {\n            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + size);\n        }\n        return (T) elements[index];\n    }\n\n    public int size() {\n        return size;\n    }\n\n    private void resize() {\n        int newSize = elements.length * 2;\n        Object[] newElements = new Object[newSize];\n        System.arraycopy(elements, 0, newElements, 0, elements.length);\n        elements = newElements;\n    }\n}\n","java","",[439,455,456,482,494,505,512,523,547,561,567,572,593,608,617,623,640,645,650,672,696,729,734,743,748,753,765,772,777,782,794,816,834,857,867,872],{"__ignoreMap":453},[457,458,461,465,468,472,476,479],"span",{"class":459,"line":460},"line",1,[457,462,464],{"class":463},"snl16","public",[457,466,467],{"class":463}," class",[457,469,471],{"class":470},"svObZ"," MyList",[457,473,475],{"class":474},"s95oV","\u003C",[457,477,478],{"class":463},"T",[457,480,481],{"class":474},"> {\n",[457,483,485,488,491],{"class":459,"line":484},2,[457,486,487],{"class":463},"    private",[457,489,490],{"class":463}," Object",[457,492,493],{"class":474},"[] elements;\n",[457,495,497,499,502],{"class":459,"line":496},3,[457,498,487],{"class":463},[457,500,501],{"class":463}," int",[457,503,504],{"class":474}," size;\n",[457,506,508],{"class":459,"line":507},4,[457,509,511],{"emptyLinePlaceholder":510},true,"\n",[457,513,515,518,520],{"class":459,"line":514},5,[457,516,517],{"class":463},"    public",[457,519,471],{"class":470},[457,521,522],{"class":474},"() {\n",[457,524,526,529,532,535,537,540,544],{"class":459,"line":525},6,[457,527,528],{"class":474},"        elements ",[457,530,531],{"class":463},"=",[457,533,534],{"class":463}," new",[457,536,490],{"class":463},[457,538,539],{"class":474},"[",[457,541,543],{"class":542},"sDLfK","10",[457,545,546],{"class":474},"];\n",[457,548,550,553,555,558],{"class":459,"line":549},7,[457,551,552],{"class":474},"        size ",[457,554,531],{"class":463},[457,556,557],{"class":542}," 0",[457,559,560],{"class":474},";\n",[457,562,564],{"class":459,"line":563},8,[457,565,566],{"class":474},"    }\n",[457,568,570],{"class":459,"line":569},9,[457,571,511],{"emptyLinePlaceholder":510},[457,573,575,577,580,583,586,590],{"class":459,"line":574},10,[457,576,517],{"class":463},[457,578,579],{"class":463}," void",[457,581,582],{"class":470}," add",[457,584,585],{"class":474},"(T ",[457,587,589],{"class":588},"s9osk","element",[457,591,592],{"class":474},") {\n",[457,594,596,599,602,605],{"class":459,"line":595},11,[457,597,598],{"class":463},"        if",[457,600,601],{"class":474}," (size ",[457,603,604],{"class":463},"==",[457,606,607],{"class":474}," elements.length) {\n",[457,609,611,614],{"class":459,"line":610},12,[457,612,613],{"class":470},"            resize",[457,615,616],{"class":474},"();\n",[457,618,620],{"class":459,"line":619},13,[457,621,622],{"class":474},"        }\n",[457,624,626,629,632,635,637],{"class":459,"line":625},14,[457,627,628],{"class":474},"        elements[size",[457,630,631],{"class":463},"++",[457,633,634],{"class":474},"] ",[457,636,531],{"class":463},[457,638,639],{"class":474}," element;\n",[457,641,643],{"class":459,"line":642},15,[457,644,566],{"class":474},[457,646,648],{"class":459,"line":647},16,[457,649,511],{"emptyLinePlaceholder":510},[457,651,653,655,658,661,664,667,670],{"class":459,"line":652},17,[457,654,517],{"class":463},[457,656,657],{"class":474}," T ",[457,659,660],{"class":470},"get",[457,662,663],{"class":474},"(",[457,665,666],{"class":463},"int",[457,668,669],{"class":588}," index",[457,671,592],{"class":474},[457,673,675,677,680,682,684,687,690,693],{"class":459,"line":674},18,[457,676,598],{"class":463},[457,678,679],{"class":474}," (index ",[457,681,475],{"class":463},[457,683,557],{"class":542},[457,685,686],{"class":463}," ||",[457,688,689],{"class":474}," index ",[457,691,692],{"class":463},">=",[457,694,695],{"class":474}," size) {\n",[457,697,699,702,704,707,709,713,716,718,721,724,726],{"class":459,"line":698},19,[457,700,701],{"class":463},"            throw",[457,703,534],{"class":463},[457,705,706],{"class":470}," IndexOutOfBoundsException",[457,708,663],{"class":474},[457,710,712],{"class":711},"sU2Wk","\"Index: \"",[457,714,715],{"class":463}," +",[457,717,689],{"class":474},[457,719,720],{"class":463},"+",[457,722,723],{"class":711}," \", Size: \"",[457,725,715],{"class":463},[457,727,728],{"class":474}," size);\n",[457,730,732],{"class":459,"line":731},20,[457,733,622],{"class":474},[457,735,737,740],{"class":459,"line":736},21,[457,738,739],{"class":463},"        return",[457,741,742],{"class":474}," (T) elements[index];\n",[457,744,746],{"class":459,"line":745},22,[457,747,566],{"class":474},[457,749,751],{"class":459,"line":750},23,[457,752,511],{"emptyLinePlaceholder":510},[457,754,756,758,760,763],{"class":459,"line":755},24,[457,757,517],{"class":463},[457,759,501],{"class":463},[457,761,762],{"class":470}," size",[457,764,522],{"class":474},[457,766,768,770],{"class":459,"line":767},25,[457,769,739],{"class":463},[457,771,504],{"class":474},[457,773,775],{"class":459,"line":774},26,[457,776,566],{"class":474},[457,778,780],{"class":459,"line":779},27,[457,781,511],{"emptyLinePlaceholder":510},[457,783,785,787,789,792],{"class":459,"line":784},28,[457,786,487],{"class":463},[457,788,579],{"class":463},[457,790,791],{"class":470}," resize",[457,793,522],{"class":474},[457,795,797,800,803,805,808,811,814],{"class":459,"line":796},29,[457,798,799],{"class":463},"        int",[457,801,802],{"class":474}," newSize ",[457,804,531],{"class":463},[457,806,807],{"class":474}," elements.length ",[457,809,810],{"class":463},"*",[457,812,813],{"class":542}," 2",[457,815,560],{"class":474},[457,817,819,822,825,827,829,831],{"class":459,"line":818},30,[457,820,821],{"class":463},"        Object",[457,823,824],{"class":474},"[] newElements ",[457,826,531],{"class":463},[457,828,534],{"class":463},[457,830,490],{"class":463},[457,832,833],{"class":474},"[newSize];\n",[457,835,837,840,843,846,849,852,854],{"class":459,"line":836},31,[457,838,839],{"class":474},"        System.",[457,841,842],{"class":470},"arraycopy",[457,844,845],{"class":474},"(elements, ",[457,847,848],{"class":542},"0",[457,850,851],{"class":474},", newElements, ",[457,853,848],{"class":542},[457,855,856],{"class":474},", elements.length);\n",[457,858,860,862,864],{"class":459,"line":859},32,[457,861,528],{"class":474},[457,863,531],{"class":463},[457,865,866],{"class":474}," newElements;\n",[457,868,870],{"class":459,"line":869},33,[457,871,566],{"class":474},[457,873,875],{"class":459,"line":874},34,[457,876,877],{"class":474},"}\n",[423,879,880],{},"Diseccionamos el código:",[882,883,884,892,895,906,916,922,927],"ul",{},[885,886,887,888,891],"li",{},"La clase ",[439,889,890],{},"MyList\u003CT>"," es una clase genérica que puede almacenar cualquier tipo de datos.",[885,893,894],{},"El constructor inicializa un array de objetos con una capacidad inicial de 10 y establece el tamaño en 0.",[885,896,897,898,901,902,905],{},"El método ",[439,899,900],{},"add(T element)"," agrega un elemento a la lista. Si el tamaño actual es igual a la capacidad del array, se llama al método ",[439,903,904],{},"resize()"," para aumentar la capacidad del array.",[885,907,897,908,911,912,915],{},[439,909,910],{},"get(int index)"," devuelve el elemento en la posición especificada. Si el índice es inválido, lanza una excepción ",[439,913,914],{},"IndexOutOfBoundsException",".",[885,917,897,918,921],{},[439,919,920],{},"size()"," devuelve el número de elementos actualmente almacenados en la lista.",[885,923,897,924,926],{},[439,925,904],{}," duplica la capacidad del array cuando es necesario.",[885,928,929,930,933],{},"El uso de ",[439,931,932],{},"Object[]"," para almacenar los elementos es una técnica común en la implementación de clases genéricas, ya que Java no permite la creación directa de arrays de tipos genéricos.",[431,935,937],{"id":936},"paso-2-usar-la-clase-genérica","Paso 2: Usar la clase genérica",[423,939,940,941,944,945,947],{},"Ahora que tenemos nuestra clase genérica ",[439,942,943],{},"MyList",", podemos usarla para almacenar diferentes tipos de datos. Aquí hay un ejemplo de cómo usar la clase ",[439,946,943],{}," para almacenar enteros y cadenas:",[448,949,951],{"className":450,"code":950,"language":452,"meta":453,"style":453},"void main() {\n    MyList\u003CInteger> intList = new MyList\u003C>();\n    intList.add(1);\n    intList.add(2);\n    intList.add(3);\n    IO.println(\"Integer List Size: \" + intList.size());\n    IO.println(\"First Element: \" + intList.get(0));\n\n    MyList\u003CString> stringList = new MyList\u003C>();\n    stringList.add(\"Hello\");\n    stringList.add(\"World\");\n    IO.println(\"String List Size: \" + stringList.size());\n    IO.println(\"First Element: \" + stringList.get(0));\n}\n",[439,952,953,963,981,997,1010,1023,1047,1071,1075,1091,1105,1118,1138,1160],{"__ignoreMap":453},[457,954,955,958,961],{"class":459,"line":460},[457,956,957],{"class":463},"void",[457,959,960],{"class":470}," main",[457,962,522],{"class":474},[457,964,965,968,971,974,976,978],{"class":459,"line":484},[457,966,967],{"class":474},"    MyList\u003C",[457,969,970],{"class":463},"Integer",[457,972,973],{"class":474},"> intList ",[457,975,531],{"class":463},[457,977,534],{"class":463},[457,979,980],{"class":474}," MyList\u003C>();\n",[457,982,983,986,989,991,994],{"class":459,"line":496},[457,984,985],{"class":474},"    intList.",[457,987,988],{"class":470},"add",[457,990,663],{"class":474},[457,992,993],{"class":542},"1",[457,995,996],{"class":474},");\n",[457,998,999,1001,1003,1005,1008],{"class":459,"line":507},[457,1000,985],{"class":474},[457,1002,988],{"class":470},[457,1004,663],{"class":474},[457,1006,1007],{"class":542},"2",[457,1009,996],{"class":474},[457,1011,1012,1014,1016,1018,1021],{"class":459,"line":514},[457,1013,985],{"class":474},[457,1015,988],{"class":470},[457,1017,663],{"class":474},[457,1019,1020],{"class":542},"3",[457,1022,996],{"class":474},[457,1024,1025,1028,1031,1033,1036,1038,1041,1044],{"class":459,"line":525},[457,1026,1027],{"class":474},"    IO.",[457,1029,1030],{"class":470},"println",[457,1032,663],{"class":474},[457,1034,1035],{"class":711},"\"Integer List Size: \"",[457,1037,715],{"class":463},[457,1039,1040],{"class":474}," intList.",[457,1042,1043],{"class":470},"size",[457,1045,1046],{"class":474},"());\n",[457,1048,1049,1051,1053,1055,1058,1060,1062,1064,1066,1068],{"class":459,"line":549},[457,1050,1027],{"class":474},[457,1052,1030],{"class":470},[457,1054,663],{"class":474},[457,1056,1057],{"class":711},"\"First Element: \"",[457,1059,715],{"class":463},[457,1061,1040],{"class":474},[457,1063,660],{"class":470},[457,1065,663],{"class":474},[457,1067,848],{"class":542},[457,1069,1070],{"class":474},"));\n",[457,1072,1073],{"class":459,"line":563},[457,1074,511],{"emptyLinePlaceholder":510},[457,1076,1077,1079,1082,1085,1087,1089],{"class":459,"line":569},[457,1078,967],{"class":474},[457,1080,1081],{"class":463},"String",[457,1083,1084],{"class":474},"> stringList ",[457,1086,531],{"class":463},[457,1088,534],{"class":463},[457,1090,980],{"class":474},[457,1092,1093,1096,1098,1100,1103],{"class":459,"line":574},[457,1094,1095],{"class":474},"    stringList.",[457,1097,988],{"class":470},[457,1099,663],{"class":474},[457,1101,1102],{"class":711},"\"Hello\"",[457,1104,996],{"class":474},[457,1106,1107,1109,1111,1113,1116],{"class":459,"line":595},[457,1108,1095],{"class":474},[457,1110,988],{"class":470},[457,1112,663],{"class":474},[457,1114,1115],{"class":711},"\"World\"",[457,1117,996],{"class":474},[457,1119,1120,1122,1124,1126,1129,1131,1134,1136],{"class":459,"line":610},[457,1121,1027],{"class":474},[457,1123,1030],{"class":470},[457,1125,663],{"class":474},[457,1127,1128],{"class":711},"\"String List Size: \"",[457,1130,715],{"class":463},[457,1132,1133],{"class":474}," stringList.",[457,1135,1043],{"class":470},[457,1137,1046],{"class":474},[457,1139,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158],{"class":459,"line":619},[457,1141,1027],{"class":474},[457,1143,1030],{"class":470},[457,1145,663],{"class":474},[457,1147,1057],{"class":711},[457,1149,715],{"class":463},[457,1151,1133],{"class":474},[457,1153,660],{"class":470},[457,1155,663],{"class":474},[457,1157,848],{"class":542},[457,1159,1070],{"class":474},[457,1161,1162],{"class":459,"line":625},[457,1163,877],{"class":474},[423,1165,1166,1167,1169],{},"En este ejemplo, creamos una instancia de ",[439,1168,943],{}," para almacenar enteros y otra para almacenar cadenas. Agregamos algunos elementos a cada lista y luego imprimimos el tamaño de la lista y el primer elemento de cada lista.",[418,1171,1173],{"id":1172},"conclusión","Conclusión",[423,1175,1176],{},"En este ejemplo, hemos demostrado cómo crear y utilizar una clase genérica en Java para almacenar diferentes tipos de datos. Las clases genéricas son una herramienta poderosa que permite a los desarrolladores escribir código más flexible y reutilizable. Al utilizar clases genéricas, puedes evitar la necesidad de escribir código duplicado para cada tipo de dato que deseas almacenar, lo que mejora la eficiencia y la mantenibilidad de tu código.",[1178,1179,1180],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":453,"searchDepth":484,"depth":484,"links":1182},[1183,1184,1188],{"id":420,"depth":484,"text":421},{"id":428,"depth":484,"text":429,"children":1185},[1186,1187],{"id":433,"depth":496,"text":434},{"id":936,"depth":496,"text":937},{"id":1172,"depth":484,"text":1173},"En este ejemplo, se muestra cómo utilizar clases genéricas en Java para crear una clase de lista personalizada que puede almacenar cualquier tipo de datos.","md",null,{"editButton":42},{"title":331,"description":1189},"zXgx3vueK5ieEkGyub1WFAQI0ZBcHID0Uct6N2FFW8o",[1196,1198],{"title":327,"path":328,"stem":329,"description":1197,"icon":105,"children":-1},"En este ejemplo, se muestra cómo utilizar JOptionPane para validar entradas de usuario en un programa Java.",{"title":335,"path":336,"stem":337,"description":1199,"children":-1},"En este ejemplo, se muestra cómo utilizar enumeraciones (Enum) y manejo de excepciones en Java para crear un programa que maneje diferentes tipos de errores de manera eficiente.",1779479576687]