All things are lawful, but not all things are profitable.
dario lobos wrote:(...) I Don want duplicated values (...)
Carey Brown wrote:Or TreeSet if you want them in sorted order.
dario lobos wrote:
Carey Brown wrote:Or TreeSet if you want them in sorted order.
...But I couldnt implement a good treeset. Also I overrite the method compare and is not working. I tried to do a field with the date and time together but long. I could do the method but only work in system.out.print. I couldnt use it in the constructor of the class that make the objects for the navigable sorted set. I tried in other class, then in the same class and the last time inside of the constructor.
dario lobos wrote:
dario lobos wrote:
Carey Brown wrote:Or TreeSet if you want them in sorted order.
dario lobos wrote:
dario lobos wrote:
Carey Brown wrote:Or TreeSet if you want them in sorted order.
If someone know where i can find information to how implement the treeset with this object and how can add this date and time in the constructor let me know.
Also i overrite the methods equal and hashcode both work and are congruents (compare, equal and hashcode) but i dont know how i must to use it in the treeset in the navigable sorted set or it the system use them internally. in the constructor i think that i must to use only comparator compare... well any help to this is wellcome. I am starting. I dindt know nothing about programing 20 days ago...
thanks.
Dario
dario lobos wrote:
Carey Brown wrote:
Sorry in my phone dont appear the code option. I erased the empty lines. is difficult to send the message. The server have problems.
In this part i have problems the rest is working. I am trying to put the date and time in a long field using the constructor. Also i did a long field with this time and date but all converted in seconds and the last three digists are milliseconds. I did it with an interface but i cant include it in the constructor.I tried in other class, in the same class and inside of the constructor.
package pruebajava;
import java.util.*;
import pruebajava.Fechalong;
import pruebajava.Fechasegundos;
import pruebajava.intdatetime;
public class Bicicleteria
{
String pmarca;
String pmodelo;
String pcolor;
double pprecio;
boolean pdisponible;
int pcantidad;
int pcontador;
static int spcontador;
long pfecha;
long pfechasegundos ;
public Bicicleteria(){};
public Bicicleteria(String pmarca, String pmodelo, String pcolor)
{
this.pmarca = pmarca;
this.pmodelo = pmodelo;
this.pcolor = pcolor;
this.pprecio = 0;
this.pcantidad = 0;
this.pdisponible = false;
spcontador++;
this.pcontador = spcontador;
// this.pfecha = fech.Longdatetime();
// this.pfechasegundos = fechs.LongFechaSegundos();
//static Fechasegundos fechas = ()->{
Fechasegundos fechs = new Fechasegundos()
{
public long LongFechaSegundos()
{
long pdia2;
long pmes2;
long pdiasmes;
long pyear2;
long pyviciesto;
long phora2;
long pminuto2;
long psegundo2;
long pcontfechasegundos;
long pmilis;
GregorianCalendar date = new GregorianCalendar();
pdia2 = (long) date.get(Calendar.DAY_OF_MONTH);
pmes2 = (long) date.get(Calendar.MONTH);
switch ( (int) pmes2){
case 1: pdiasmes = 31;
break;
case 2: pdiasmes = 28;
break;
case 3: pdiasmes = 31;
break;
case 4: pdiasmes = 30;
break;
case 5: pdiasmes = 31;
break;
case 6: pdiasmes = 30;
break;
case 7: pdiasmes = 31;
break;
case 8: pdiasmes = 31;
break;
case 9: pdiasmes = 30;
break;
case 10: pdiasmes = 31;
break;
case 11: pdiasmes = 30;
break;
default: pdiasmes = 31;};
pyear2 = (long) date.get(Calendar.YEAR);
if
((pmes2 > 1) && (((pyear2-2016) % 4) == 0))
pyviciesto = 24 * 3600;
else
pyviciesto = 0;
phora2 = (long) date.get(Calendar.HOUR);
pminuto2 = (long) date.get(Calendar.MINUTE);
psegundo2 = (long) date.get(Calendar.SECOND);
pmilis = (long) date.get(Calendar.MILLISECOND);
pcontfechasegundos = (psegundo2 + pminuto2* 60 + phora2 * 3600 + pdia2 * 24 * 3600 + pdiasmes * 24 * 3600 + pyear2 * 365 * 24 * 3600 + pyviciesto)*1000 + pmilis;
return (long) pcontfechasegundos;
};
};
//static Fechalong fech = ()->{
Fechalong fech = new Fechalong()
{
public long LongDateTime()
{
long pdia;
long pmes;
long pyear;
long phora;
long pminuto;
long psegundo;
long pcontfechahora;
GregorianCalendar date2 = new GregorianCalendar();
pdia = (long) date2.get(Calendar.DAY_OF_MONTH);
pmes = (long) date2.get(Calendar.MONTH);
pyear = (long) date2.get(Calendar.YEAR);
phora = (long) date2.get(Calendar.HOUR);
pminuto = (long) date2.get(Calendar.MINUTE);
psegundo = (long) date2.get(Calendar.SECOND);
pcontfechahora = psegundo + pminuto * 100 + phora * 10000 + pdia * 1000000+ pmes * 100000000 + pyear * 10000 * 1000000;
return (long) pcontfechahora;
//this.pfecha = fech.Longdatetime();
//this.pfechasegundos = fechs.LongFechaSegundos();
};
};
};
public String Getpmarca(){
return this.pmarca;
};
public String Getpmodelo(){
return this.pmodelo;
};
public String Getpcolor(){
return this.pcolor;
};
public Double Getpprecio(){
return this.pprecio;
};
public int Getpcantidad(){
return this.pcantidad;
};
public boolean Getpdisponible(){
return this.pdisponible;
};
public void Setpprecio(double pprecio){
this.pprecio = pprecio;
};
public void Setpdisponible(boolean pdisponible){
this.pdisponible = pdisponible;
};
public void Setpcantidad(int pcantidad){
this.pcantidad = pcantidad;
};
@Override
public boolean equals(Object o){
if (!(o instanceof Bicicleteria) || o== null ) {return false ;};
if (this == o){
return true;
};
Bicicleteria bici = (Bicicleteria) o;
return
(this.pmarca.compareToIgnoreCase(bici.pmarca) == 0 && this.pmodelo.compareToIgnoreCase(bici.pmodelo) == 0 && this.pcolor.compareToIgnoreCase(bici.pcolor) == 0 );
};
public Boolean Getbici(Bicicleteria a,Bicicleteria b){
return a.equals(b);
};
@Override
public int hashCode(){
int d = 3;
GregorianCalendar fecha = new GregorianCalendar();
int c = fecha.get(Calendar.SECOND);
int a = d*( Getpmarca().compareTo(Getpmodelo()) + Getpmodelo().compareTo(Getpcolor()))+ c;
return a ;
};
Object o = null ;
@Override
public String toString(){
return
" Marca: " + pmarca + " Modelo: " + pmodelo + " Color: " + pcolor + " precio: " + String.format("%.2f%n",pprecio);
};
public static void main(String[] args) {
Bicicleteria bicicleta1 = new Bicicleteria("a", "a", "a");
Bicicleteria bicicleta2 = new Bicicleteria("a","a","a");
Bicicleteria bicicleta3 = new Bicicleteria("a","f","g");
// System.out.println (fech.LongDateTime());
System.out.println(bicicleta1.pmarca); System.out.println(bicicleta1.pmodelo);
System.out.println(bicicleta1.pcolor);
System.out.println(bicicleta1.pcantidad); System.out.println(bicicleta1.pdisponible);
System.out.println(bicicleta1.pcontador);
System.out.println(bicicleta2.pmarca);
System.out.println(bicicleta2.pcontador);
System.out.println(bicicleta1.equals (bicicleta2));
System.out.println(bicicleta2.equals(bicicleta3));
System.out.println(bicicleta1);
System.out.println("hashCode1: " + bicicleta1.hashCode());
System.out.println(bicicleta2);
System.out.println("hashCode2: " + bicicleta2.hashCode());
System.out.println(bicicleta3);
System.out.println("hashCode3: " + bicicleta3.hashCode());;
GregorianCalendar df = new GregorianCalendar();
System.out.println (df);
System.out.println( df.get(Calendar.SECOND));
}
}
package pruebajava;
import java.util.*;
import pruebajava.Bicicleteria;
public class Navbicicleteria extends Bicicleteria implements Comparator<Bicicleteria>{
@Override
public int compare(Bicicleteria o1 , Bicicleteria o2)
{
if ((!((o1 instanceof Bicicleteria)
&& (o2 instanceof Bicicleteria)))|| (o1 == null) || (o2 == null)) {return -1;};
if (o1 == o2){return 0;};
Bicicleteria bici1 = (Bicicleteria) o1;
Bicicleteria bici2 = (Bicicleteria) o2;
return (bici1.Getpmarca().compareToIgnoreCase(bici2.Getpmarca()) + bici1.Getpmodelo().compareToIgnoreCase(bici2.Getpmodelo()) + bici1.Getpcolor().compareToIgnoreCase (bici2.Getpcolor()));
};
@Override
public boolean equals(Object o){
if (!(o instanceof Bicicleteria) || o== null ) {return false ;};
if (this == o){
return true;
};
Bicicleteria bici = (Bicicleteria) o;
return
(this.pmarca.compareToIgnoreCase(bici.pmarca) == 0 && this.pmodelo.compareToIgnoreCase(bici.pmodelo) == 0 && this.pcolor.compareToIgnoreCase(bici.pcolor) == 0 );
};
public Boolean Getbici(Bicicleteria a,Bicicleteria b){
return a.equals(b);
};
@Override
public int hashCode(){
int d = 3;
GregorianCalendar fecha = new GregorianCalendar();
int c = fecha.get(Calendar.SECOND);
int a = d*( Getpmarca().compareTo(Getpmodelo()) + Getpmodelo().compareTo(Getpcolor()))+ c;
return a ;
};
Object o = null ;
@Override
public String toString(){
return
" Marca: " + pmarca + " Modelo: " + pmodelo + " Color: " + pcolor + " precio: " + String.format("%.2f%n",pprecio) ;
};
//public static void main(String[] args) {
static NavigableSet<Bicicleteria> navigablebiciset= new TreeSet<>(new Navbicicleteria());
static public void precioCambiado(){System.out.println("Precio modificado");};
static public void biciInexiste(){System.out.println("Tipo de bicicleta inexistente");};
static public void CambioPrecio( String pmarca, String pmodelo,String pcolor, double newprecio ){
Bicicleteria getbici= new Bicicleteria (pmarca ,pmodelo , pcolor );
if ((!(navigablebiciset.ceiling(getbici)==null)) &&
(navigablebiciset.ceiling(getbici).equals(getbici)==true)){ navigablebiciset.ceiling(getbici).pprecio = newprecio;
precioCambiado();}
else {biciInexiste();};
getbici = null;
};
static public void cantCambiada(){
System.out.println("Cantidad de bicicletas cambiada");
};
static public void Cambiocantidad( String pmarca, String pmodelo, String pcolor, int newcantidad){
Bicicleteria getbici = new Bicicleteria(pmarca,pmodelo,pcolor);
if((!(navigablebiciset.ceiling(getbici)==null)&& (navigablebiciset.ceiling(getbici).equals(getbici)==true))){navigablebiciset.ceiling(getbici).pcantidad = newcantidad;
cantCambiada();}
else{ biciInexiste();};
getbici = null;
};
public static void main(String[] args){
navigablebiciset.add(new Bicicleteria("a", "b", "c"));
navigablebiciset.add(new Bicicleteria("d", "e", "f"));
navigablebiciset.add(new Bicicleteria("a", "b", "c"));
System.out.println(navigablebiciset);
CambioPrecio("d","e","f",20000);
System.out.println("nuevoprecio: ");
System.out.println(navigablebiciset);
}
}
All things are lawful, but not all things are profitable.
All things are lawful, but not all things are profitable.
dario lobos wrote:Also i tried with random seed and second to do a hashcode with fast expire date and with no calculation at all.
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime. |