package pack;
import java.io.*;
import java.util.*;
public class Lista {
private Map<Integer, Product> map;
Vector <Product> v;
public Lista(){
map=new HashMap<Integer,Product>();
}
public Product readText(BufferedReader in)
{
Product prod=new Product();
try{
prod.setID(Integer.parseInt(in.readLine()));
prod.setNume(in.readLine());
prod.setQuality(in.readLine());
prod.setPrice(in.readLine());
}catch(IOException e){
System.out.println("Eroare la citirea din fisier");
return null;
}catch(Exception e){
return null;
}
return prod;
}
public void readFile()
{
try{
BufferedReader in=new BufferedReader(new FileReader("fisier.txt"));
Product prod;
v=new Vector<Product>();
map=new HashMap<Integer,Product>();
do
{
prod=readText(in);
//prod.afisare();
if(prod!=null )
{
map.put(prod.getID(), prod);
v.add(prod);
}
}while(prod!=null && in.ready());
in.close();
}catch(FileNotFoundException e){
System.out.println("Eroare la deschiderea fisierului");
}catch(IOException e){
System.out.println("Eroare IO la deschiderea fisierului");
}
}
public void search(Integer idx){
Product p;
p=(Product)map.get(idx);
if(p!=null){
System.out.println("Produsul aferecent pentru cheia "+idx+" este: ");
p.afisare();
}
else
System.out.println("Nu exista produs cu id-ul: "+idx);
}
public void sortare()
{
int i,j;
Product aux;
for(i=0;i<v.size()-1;i++)
{
for(j=i+1;j<v.size();j++)
{
if(v.elementAt(i).getID()>v.elementAt(j).getID())
{
aux=v.elementAt(i);
v.setElementAt(v.elementAt(j), i);
v.setElementAt(aux, j);
}
}
}
map.clear();
for(i=0;i<v.size();i++)
{
//v.elementAt(i).afisare();
map.put(v.elementAt(i).getID(), v.elementAt(i));
}
}
public void afisareMap()
{
Set set = map.entrySet();
Iterator i = set.iterator();
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
Product c=map.get(me.getKey());
c.afisare();
}
}
}
package pack;
public class Product {
private Integer id;
private String nume;
private String quality;
private String price;
public Product(){}
public Product(Integer id,String nume,String quality,String price)
{
this.id=id;
this.nume=nume;
this.quality=quality;
this.price=price;
}
public void afisare()
{
System.out.println("ID: "+id);
System.out.println("Nume: "+nume);
System.out.println("Quality: "+quality);
System.out.println("Price: "+price);
}
public Integer getID()
{
return id;
}
public void setID(Integer id)
{
this.id=id;
}
public String getNume()
{
return nume;
}
public void setNume(String nume)
{
this.nume=nume;
}
public String getQuality()
{
return quality;
}
public void setQuality(String quality)
{
this.quality=quality;
}
public String getPrice()
{
return price;
}
public void setPrice(String price)
{
this.price=price;
}
}
package pack;
import java.io.*;
public class TestMap {
/**
* @param args
*/
public static void main(String[] args) {
Lista list=new Lista();
list.readFile();
System.out.println("Cautare dupa cheie: ");
try{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Integer line;
line=Integer.parseInt(in.readLine());
list.search(line);
}catch(IOException e)
{
System.out.println("Eroare IO neasteptata");
}catch(NumberFormatException ex)
{
System.out.println("Format gresit");
}
list.sortare();
list.afisareMap();
}
}
Niciun comentariu:
Trimiteți un comentariu