package utilerias; import estructura.*; import java.io.*; import java.util.*; public class Carga { public static Encabezado cargarEncabezado (String separador, String file, Boolean Id) throws FileNotFoundException, IOException { BufferedReader r = new BufferedReader (new FileReader(file)); String registro = r.readLine(); String atributos[] = registro.split(separador); int n = atributos.length - 1; List<String> atributos_regulares = new ArrayList<>(); int inicio; if(Id) inicio=1; else inicio = 0; for (int i=inicio;i<n;i++) atributos_regulares.add(atributos[i]); String clase = atributos[n]; Encabezado E = new Encabezado((ArrayList)atributos_regulares, clase); r.close(); return E; } public static Datos cargarDatos (Encabezado E, String separador, String file, Boolean HasId, Boolean hasEncabezado) throws FileNotFoundException, IOException { BufferedReader r = new BufferedReader (new FileReader(file)); Datos D1 = new Datos(E); Tupla t; String registro, categoria_clase; if(hasEncabezado) r.readLine(); while((registro = r.readLine()) != null){ String valores[] = registro.split(separador); int n = valores.length - 1; int inicio; if(HasId) inicio=1; else inicio = 0; List<String> valores_regulares = new ArrayList<>(); for (int i=inicio;i<n;i++) valores_regulares.add(valores[i]); categoria_clase = valores[n]; t = new Tupla((ArrayList)valores_regulares,categoria_clase); D1.nuevaTupla(t); } return D1; } } package estructura; import java.util.*; public final class Datos { public Encabezado encabezado; public List<Tupla> tuplas; public List<CategoriaClase> categoriasClase; public Datos(Encabezado E){ this.tuplas = new ArrayList<>(); encabezado = E; categoriasClase = new ArrayList<>(); } public void nuevaTupla(Tupla t){ tuplas.add(t); } public void setCategorias(){ Set<String> etiquetas = new HashSet<>(); CategoriaClase c; for (Tupla t: tuplas) etiquetas.add(t.categoriaClase); for (String e: etiquetas){ c = new CategoriaClase(); c.etiqueta=e; c.count=0; categoriasClase.add(c); } } public void cuentaCategorias(){ for (Tupla t: tuplas){ for(CategoriaClase c: categoriasClase) if((c.etiqueta).equals(t.categoriaClase)) (c.count)++; } } } package estructura; import java.util.*; public class Encabezado { public List<String> atributos; public int n; //dimensión public String clase; public Encabezado(ArrayList a, String c){ atributos = a; n=atributos.size(); clase = c; } @Override public String toString(){ String encabezadoString = new String(); for (String Ai : this.atributos) encabezadoString = encabezadoString.concat(Ai+" "); encabezadoString = encabezadoString.concat(this.clase); return (encabezadoString); } } package estructura; public class CategoriaClase { public String etiqueta; public int count; @Override public String toString(){ return (etiqueta + ": "+ String.valueOf(count)); } } package estructura; import java.util.*; public class Tupla { public List<String> valores; public String categoriaClase; public Tupla(ArrayList v, String c){ valores = v; categoriaClase = c; } @Override public String toString(){ String tuplaString = new String(); for(String v: this.valores) tuplaString = tuplaString.concat(v+" "); tuplaString = tuplaString.concat(this.categoriaClase); return(tuplaString); } }