I would like to know how to compile these java files, because I try from cmd and I get the error:
"can not find simbol".
Load Data
package tp2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class CargarDatos {
public static Grafo<String> cargarDatos(String filename, String delimiter) {
Grafo<String> grafo = new Grafo<>();
// Primera pasada para agregar las peliculas y los actores como vertices del grafo
try {
File file = new File(filename);
BufferedReader br = new BufferedReader(new FileReader(file));
String st = null;
while ((st = br.readLine()) != null) {
String[] values = st.split(delimiter);
for (int i = 0; i < values.length; i++) {
if (!grafo.contieneVertice(values[i]))
grafo.agregarVertice(values[i]);
}
}
br.close();
}
catch (IOException e) {
throw new IllegalArgumentException("Error al leer el archivo: " + filename);
}
// Segunda pasada para agregar aristas entre actores y peliculas en las que trabajaron
try {
File file = new File(filename);
BufferedReader br = new BufferedReader(new FileReader(file));
String st = null;
while ((st = br.readLine()) != null) {
String[] values = st.split(delimiter);
for (int i = 1; i < values.length; i++) {
grafo.agregarArista(values[0], values[i]);
}
}
br.close();
}
catch (IOException e) {
throw new IllegalArgumentException("Error al leer el archivo: " + filename);
}
return grafo;
}
// Ejemplo de uso:
// java tp2.main "movies.txt"
// Ingrese un nombre:
// Bacon, Kevin
public static void main(String[] args) {
String filename = args[0];
String delimiter = "/";
Grafo<String> grafo = cargarDatos(filename, delimiter);
System.out.println("Cantidad de vertices: " + grafo.cantVertices());
System.out.println("Ingrese un nombre: ");
Scanner scanner = new Scanner(new java.io.BufferedInputStream(System.in));
String source = scanner.nextLine();
if (grafo.contieneVertice(source)) {
for (String v: grafo.obtenerAdyacentes(source)) {
System.out.println(" " + v);
}
}
else {
System.out.println("No hay un vertice para la entrada: " + source);
}
}
}
Grafo
package tp2;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Grafo<V> {
private Map<V, Set<V>> lAdy = new HashMap<>();
public Grafo() { }
public boolean contieneVertice(V v) {
return lAdy.containsKey(v);
}
public void agregarVertice(V v) {
lAdy.put(v, new HashSet<V>());
}
public void agregarArista(V v, V w) {
lAdy.get(v).add(w);
lAdy.get(w).add(v);
}
public Set<V> obtenerAdyacentes(V v) {
return lAdy.get(v);
}
public int cantVertices() {
return lAdy.keySet().size();
}
}