Skip to content

Commit d0f9cf1

Browse files
authored
Merge pull request #8964 from JuanGuzmanG/main
#2-java
2 parents f3d950c + 2e2efac commit d0f9cf1

File tree

2 files changed

+387
-0
lines changed

2 files changed

+387
-0
lines changed
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
2+
public class JuanGuzmanG {
3+
4+
static int staticNumero = 1;
5+
6+
public static void numeros() {
7+
int intNumero = 2;
8+
}
9+
10+
public static void main(String args[]) {
11+
//funcion sin parametro ni retorno
12+
saludar();
13+
14+
//con uno o varios parametros;
15+
saludoPersonalizado("juan", 18);
16+
17+
//con retorno
18+
String mensaje = saludoGuardado();
19+
System.out.println("mensaje obtenido:" + mensaje);
20+
21+
//funcion dentro de funcion
22+
System.out.println("mayor que 5? " + raiz(8));
23+
24+
// funciones de Math, ya creadas por java
25+
System.out.println("raiz: " + Math.sqrt(16));
26+
System.out.println("Exponente: " + Math.pow(2, 3));
27+
System.out.println("Numero aleatorio: " + Math.random());
28+
29+
//funciones de cadena
30+
System.out.println("hola tiene: " + "hola".length() + " letras");
31+
System.out.println("hola y " + "hola".toUpperCase());
32+
System.out.println("hola: " + "hola".charAt(1));
33+
34+
//funcion para numeros
35+
System.out.println("4" + "en tipo numero: " + Integer.valueOf("4"));
36+
37+
//variables locales y globales
38+
System.out.println("global: " + staticNumero);
39+
//System.out.println("local: "+intNumero);
40+
41+
//Dificultad extra
42+
System.out.println("contador: "+multiplos("hola", "mundo"));
43+
}
44+
45+
static int multiplos(String cadena1, String cadena2){
46+
int contador = 0;
47+
for(int i=1; i<=100;i++ ){
48+
if(i%3==0 && i%5==0){
49+
System.out.println(i+": "+cadena1+" "+cadena2);
50+
}else if(i%5==0){
51+
System.out.println(i+": "+cadena2);
52+
}else if(i%3==0){
53+
System.out.println(i+": "+cadena1);
54+
}else{
55+
System.out.println(i);
56+
contador++;
57+
}
58+
}
59+
return contador;
60+
61+
/*
62+
tambien:
63+
String salida = "";
64+
if(i%3==0){
65+
salida += cadena1;
66+
}
67+
if(i%5==0){
68+
salida += cadena2;
69+
}
70+
if(salida.isEmpty()){
71+
System.out.println(i);
72+
contador++;
73+
} else {
74+
System.out.println(salida);
75+
}
76+
*/
77+
}
78+
79+
static void saludar() {
80+
System.out.println("hola");
81+
}
82+
83+
static void saludoPersonalizado(String nombre, Integer edad) {
84+
System.out.println("mi nombre es: " + nombre + " tengo: " + edad);
85+
}
86+
87+
static String saludoGuardado() {
88+
return "viene de una funcion";
89+
}
90+
91+
static boolean raiz(Integer numero) {
92+
return resultado((int) Math.sqrt(numero));
93+
}
94+
95+
static boolean resultado(Integer valorRaiz) {
96+
return (valorRaiz >= 5);
97+
}
98+
99+
}
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
2+
import java.util.*;
3+
4+
public class JuanGuzmanG {
5+
private static final int maxDigitos = 11;
6+
public static void main(String args[]) {
7+
Scanner sc = new Scanner(System.in);
8+
System.out.println("=== ARRAYLIST ===");
9+
//ideal para muchas lecturas
10+
ArrayList<String> numeros = new ArrayList<>();
11+
//add
12+
numeros.add("b2");
13+
numeros.add("c3");
14+
System.out.println("lista original");
15+
listar(numeros);
16+
//observar
17+
System.out.println("get: posicion 1:" + numeros.get(1));
18+
//remover
19+
numeros.remove("b2");
20+
System.out.println("remover posicion 1");
21+
listar(numeros);
22+
//actualizar
23+
numeros.set(0, "v2");
24+
System.out.println("actualizado posicion 0 con 4");
25+
listar(numeros);
26+
27+
System.out.println("se agrega valores:");
28+
numeros.add("v1");
29+
numeros.add("a3");
30+
numeros.add("b3");
31+
listar(numeros);
32+
33+
System.out.println("lista:");
34+
System.out.println(numeros);
35+
36+
System.out.println("invertir");
37+
System.out.println(numeros.reversed());
38+
39+
System.out.println("ordenar");
40+
Collections.sort(numeros);
41+
listar(numeros);
42+
43+
System.out.println("=== LINKEDLIST ===");
44+
//ideal para muchas inserciones y eliminaciones
45+
LinkedList<String> linkedlist = new LinkedList<>();
46+
linkedlist.add("linkedin");
47+
linkedlist.add("prueba");
48+
linkedlist.remove("prueba");
49+
System.out.println(linkedlist);
50+
51+
System.out.println("=== HASHSET ===");
52+
//ideal solo si importa evitar duplicados
53+
//muy rapido
54+
HashSet<String> cars = new HashSet<>();
55+
cars.add("carro1");
56+
cars.add("carro2");
57+
cars.remove("carro2");
58+
System.out.println(cars);
59+
System.out.println("modificar carro1 por carro11");
60+
if (cars.contains("carro1")) {
61+
cars.remove("carro1");
62+
cars.add("carro11");
63+
System.out.println(cars);
64+
}
65+
cars.add("carro2");
66+
System.out.println(cars);
67+
68+
System.out.println("=== LINKEDHASHSET===");
69+
//ideal para orden se mantiene tal como se agrega
70+
//levemente mas lento que hashset
71+
//estructura hashTable + LinkedList
72+
//comun en orden de inserción
73+
LinkedHashSet<Integer> ordenLinkedHashSet = new LinkedHashSet<>();
74+
ordenLinkedHashSet.add(5);
75+
ordenLinkedHashSet.add(2);
76+
ordenLinkedHashSet.add(1);
77+
System.out.println(ordenLinkedHashSet);
78+
79+
System.out.println("===TREESET===");
80+
//ideal siempre ordenado automaticamente
81+
//lento, usa estructura Arbol rojo-negro
82+
//permite null con restricciones
83+
//comun en ordenamiento
84+
TreeSet<Integer> arbol = new TreeSet<>();
85+
arbol.add(2);
86+
arbol.add(3);
87+
arbol.add(4);
88+
arbol.add(1);
89+
System.out.println(arbol);
90+
91+
//forma de usar null
92+
Comparator<Integer> comparator = Comparator.nullsFirst(Integer::compareTo);
93+
TreeSet<Integer> set = new TreeSet<>(comparator);
94+
set.add(1);
95+
set.add(2);
96+
set.add(null);
97+
System.out.println(set);
98+
99+
System.out.println("===HASHMAP===");
100+
//velocidad y sin importar el orden.
101+
HashMap<String, Integer> edades = new HashMap<>();
102+
edades.put("ana", 20);
103+
edades.put("juan", 10);
104+
System.out.println(edades);
105+
System.out.println("edad de ana: " + edades.get("ana"));
106+
107+
System.out.println("===LinkedHashMap===");
108+
//velocidad y mantiene el orden de inserción
109+
LinkedHashMap<Integer, String> paciente = new LinkedHashMap<>();
110+
paciente.put(1, "paciente1");
111+
paciente.put(2, "paciente2");
112+
paciente.put(0, "paciente0");
113+
paciente.put(3, "paciente3");
114+
System.out.println(paciente);
115+
116+
System.out.println("===TREEMAP===");
117+
//llaves ordenadas y operaciones de rango (llaves entre)
118+
TreeMap<Integer, String> estudiantes = new TreeMap<>();
119+
estudiantes.put(1, "juan");
120+
estudiantes.put(3, "maria");
121+
estudiantes.put(2, "pepe");
122+
System.out.println(estudiantes);
123+
124+
System.out.println("===QUEUE===");
125+
//sistema de turnos, proceso de orden de llegada
126+
//FIFO First in, First Out
127+
//offer si no tiene espacio regresa un false - recomendado en colas sin limites
128+
//add si no tiene espacio regresa una IllegalStateException - colas con capacidad limitada
129+
Queue<String> cola = new LinkedList<>();
130+
cola.offer("ana");
131+
cola.add("pepe");
132+
System.out.println(cola);
133+
System.out.println(cola.poll());
134+
System.out.println(cola.poll());
135+
136+
System.out.println("=== STACK ===");
137+
//obsoleta
138+
//sistema LIFO last in, first out
139+
Stack<String> pila = new Stack<>();
140+
pila.push("A");
141+
pila.push("B");
142+
System.out.println("completa");
143+
System.out.println(pila);
144+
pila.pop();
145+
System.out.println("pop");
146+
System.out.println(pila);
147+
148+
System.out.println("=== DEQUE ===");
149+
Deque<String> pilaDeque = new ArrayDeque<>();
150+
pilaDeque.push("A");
151+
pilaDeque.push("B");
152+
System.out.println("completa");
153+
System.out.println(pilaDeque);
154+
pilaDeque.pop();
155+
System.out.println("pop");
156+
System.out.println(pilaDeque);
157+
158+
/*
159+
* DIFICULTAD EXTRA (opcional):
160+
* Crea una agenda de contactos por terminal.
161+
* - Debes implementar funcionalidades de búsqueda, inserción, actualización y eliminación de contactos.
162+
* - Cada contacto debe tener un nombre y un número de teléfono.
163+
* - El programa solicita en primer lugar cuál es la operación que se quiere realizar, y a continuación
164+
* los datos necesarios para llevarla a cabo.
165+
* - El programa no puede dejar introducir números de teléfono no numéricos y con más de 11 dígitos.
166+
* (o el número de dígitos que quieras)
167+
* - También se debe proponer una operación de finalización del programa.
168+
*/
169+
Map<String, String> contactos = new HashMap<>();
170+
contactos.put("ana", "32919382");
171+
172+
boolean on = true;
173+
while (on) {
174+
String telefono ="";
175+
String nombre = "";
176+
System.out.println("Agenda de contactos, seleccione la operación");
177+
System.out.println(" 1. búsqueda");
178+
System.out.println(" 2. inserción");
179+
System.out.println(" 3. actualización");
180+
System.out.println(" 4. eliminación");
181+
System.out.println(" 5. lista completa");
182+
System.out.print("Opción: ");
183+
184+
int opcion;
185+
try {
186+
opcion = Integer.parseInt(sc.nextLine().trim());
187+
} catch (NumberFormatException e) {
188+
System.out.println("opcion invalida, intente de nuevo");
189+
continue;
190+
}
191+
192+
if(opcion<1 || opcion>6){
193+
System.out.println("opcion fuera de menu, intente den uevo \n");
194+
continue;
195+
}
196+
197+
switch(opcion){
198+
case 1 -> {
199+
System.out.println("Ingrese el nombre: ");
200+
nombre = sc.nextLine().trim().toLowerCase();
201+
if(contactos.containsKey(nombre)){
202+
System.out.println(nombre+" Numero: "+contactos.get(nombre));
203+
} else {
204+
System.out.println("No se encontro este contacto");
205+
}
206+
}
207+
case 2 -> {
208+
System.out.println("Ingrese el nombre del nuevo contacto");
209+
nombre = sc.nextLine().trim().toLowerCase();
210+
if(nombre.isEmpty()){
211+
System.out.println("Nombre invalido");
212+
break;
213+
} else if(contactos.containsKey(nombre)){
214+
System.out.println("ya existe un usuario con este nombre");
215+
break;
216+
}
217+
System.out.println("Ingrese el numero del nuevo contacto, maximo 11 numeros");
218+
telefono = sc.nextLine().trim();
219+
if(validarTelefono(telefono)==null){
220+
System.out.println("Telefono no valido");
221+
break;
222+
}
223+
contactos.put(nombre,telefono);
224+
System.out.println("Se guardo: "+ nombre +" con el telefono: "+telefono);
225+
}
226+
case 3 -> {
227+
System.out.println("Ingrese el nombre del contacto a modificar:");
228+
nombre = sc.nextLine().trim().toLowerCase();
229+
if(nombre.isEmpty()){
230+
System.out.println("Nombre invalido");
231+
break;
232+
}
233+
if(contactos.containsKey(nombre)){
234+
System.out.println("Ingrese el nuevo telefono");
235+
telefono = sc.nextLine().trim();
236+
if(validarTelefono(telefono)==null){
237+
System.out.println("telefono no valido");
238+
break;
239+
}
240+
}else{
241+
System.out.println("No se encontro contacto con este nombre");
242+
break;
243+
}
244+
System.out.println("el contacto: "+
245+
nombre +" con telefono: "+ contactos.containsKey(nombre));
246+
contactos.put(nombre, telefono);
247+
System.out.println("ahora contiene el numero: "+ contactos.containsKey(nombre));
248+
}
249+
case 4 -> {
250+
System.out.println("ingrese el nombre del contacto a eliminar:");
251+
nombre = sc.nextLine().trim().toLowerCase();
252+
if(contactos.containsKey(nombre)){
253+
contactos.remove(nombre);
254+
System.out.println("contacto eliminado");
255+
} else {
256+
System.out.println("No se encontro contacto con este nombre");
257+
break;
258+
}
259+
}
260+
case 5 -> {
261+
System.out.println(contactos);
262+
}
263+
}
264+
265+
System.out.println("¿Dese finalizar? si[y] o no[n]");
266+
String finalizar = sc.nextLine().trim();
267+
if(finalizar.equalsIgnoreCase("y")){
268+
on = false;
269+
}
270+
}
271+
System.out.println("finalizo el programa");
272+
sc.close();
273+
}
274+
275+
static String validarTelefono(String t){
276+
if(t.matches("\\d+") && t.length() <= maxDigitos){
277+
return t;
278+
} else {
279+
return null;
280+
}
281+
}
282+
283+
static void listar(ArrayList<String> numeros) {
284+
for (String num : numeros) {
285+
System.out.println(num);
286+
}
287+
}
288+
}

0 commit comments

Comments
 (0)