• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
November 02, 2025, 03:31:26 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
November 02, 2025, 03:31:26 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ταχυρρυθμα ιδιαιτερα Φυσι...
by kostisgialamas
[November 01, 2025, 23:48:04 pm]

GEFORCE RTX 3080 Ti 12GB ...
by botrinis
[November 01, 2025, 20:42:51 pm]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[November 01, 2025, 16:57:52 pm]

Αποτυχία δήθεν "φοιτητικώ...
by Nikos_313
[November 01, 2025, 16:24:50 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[November 01, 2025, 01:34:27 am]

Ρυθμίσεις Θεμάτων της Ανώ...
by Nikos_313
[October 31, 2025, 21:46:32 pm]

[Σ.Φ. Ηλ-Μηχ] Κινητοποίησ...
by Nikos_313
[October 31, 2025, 21:41:48 pm]

Μόνο λάθος απαντήσεις
by Nikos_313
[October 31, 2025, 19:45:44 pm]

[ΣΦ ΗΛ-ΜΗΧ] Γενική Συνέλε...
by Aris★
[October 31, 2025, 17:44:39 pm]

[Λογική Σχεδίαση] Ύλη που...
by Orgianelis
[October 31, 2025, 02:04:50 am]

Ποιο τραγούδι ακούσατε 5+...
by pesto80
[October 31, 2025, 00:06:03 am]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by Διάλεξις
[October 30, 2025, 17:19:57 pm]

[Υψηλές Τάσεις Ι] Γενικές...
by chatzikys
[October 29, 2025, 14:50:41 pm]

[Πυρηνική Τεχνολογία] Γεν...
by chatzikys
[October 29, 2025, 14:49:30 pm]

Αποτελέσματα Εξεταστικής ...
by supersonic pepega
[October 29, 2025, 14:25:43 pm]

Ποιον θεωρείτε χειρότερο...
by Katarameno
[October 29, 2025, 12:49:59 pm]

[Τεχνικές Βελτιστοποίησης...
by ttsengel
[October 28, 2025, 09:30:42 am]

Των συνειρμών το παίγνιο....
by Nikos_313
[October 27, 2025, 14:27:19 pm]

Αστείες Φωτογραφίες!
by Katarameno
[October 27, 2025, 02:18:59 am]

[ΑΡΑΓΕ Attack] Συνέλευση ...
by Aris★
[October 26, 2025, 20:16:18 pm]
Στατιστικά
Members
Total Members: 10156
Latest: drandic
Stats
Total Posts: 1428783
Total Topics: 31845
Online Today: 443
Online Ever: 2093
(April 17, 2025, 07:47:49 am)
Users Online
Users: 4
Guests: 132
Total: 136
mimaki
MariosTsourek
nikol michalou
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
  Όταν ανεβάζουμε φωτογραφίες στις Ανακοινώσεις και Έκτακτα νέα, βάζουμε τη μεγαλύτερη πλευρά 400 (width=400 ή height=400 ). π.χ. [img height=400 (κλείνει η αγκύλη) 
THMMY.gr > Forum > Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα > Περί Υπολογιστών... > Software > Προγραμματισμός (C, VB, Delphi, PHP, ASP...) > Java (Moderators: chatzikys, PolarBear) > Java - Vectors
0 Members and 1 Guest are viewing this topic.
Pages: [1] Go Down Print
Author Topic: Java - Vectors  (Read 1577 times)
^^DaRk_HunTeR
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2149


0001 0010 0100 0010


View Profile
Java - Vectors
« on: March 01, 2013, 18:11:06 pm »

Παίζει να ναι κάτι πολύ απλό αλλά τώρα έχω κολλήσει…

Code:
LineClass LineObject;

 Vector <LineClass> LineVector=new Vector <LineClass> (counter/4);
 //for Testing purposes
 System.out.println("Initial size: " + LineVector.size());
         System.out.println("Initial capacity: " + LineVector.capacity());
     
 for(int j=0;j<counter;j+=4){
           LineObject=new LineClass();
           LineObject.setAkro1( New_arrayline[j],  New_arrayline[j+1]);
           LineObject.setAkro2( New_arrayline[j+2],  New_arrayline[j+3]);
           LineVector.addElement(LineObject);
 }          
 
 
 //System.out.println("First element: " +LineVector.firstElement()); //den doulepse:P      
 System.out.println("Capacity after all additions: " + LineVector.capacity());  
         
// For each element in the vector, print out the index, the
       // class of the element, and the element itself
       for (int i = 0; i < LineVector.size(); i++) {
           Object element = LineVector.elementAt(i);
           System.out.println("   " + i + " (" +element.getClass().getName() + "): " +element);
       }
       System.out.println();


Λοιπόν έχω διάφορους πίνακες τους οποίους θέλω για διάφορους λόγους να μετατρέψω σε Vectors.
Γράφω λοιπόν τον κώδικα(που μου φαίνεται σωστός) για να κάνω τη μετατροπή αλλά μετά όμως θέλω να διαπιστώσω αν τα δεδομένα(εν προκειμένω integers, συντεταγμένες κάποιων γραμμών)  του πρώτου πίνακα(New_arrayline[]) έχουν περάσει σωστά ως elements του πρώτου vector(LineVector). Για αυτό θέλω να εμφανίζω αυτά τα elements… και προς το παρόν το μόνο που παίρνω είναι:

Quote
Initial size: 0
Initial capacity: 25
Capacity after all additions: 25
   0 (ClassesGeneral.LineClass): ClassesGeneral.LineClass@6659fb21
   1 (ClassesGeneral.LineClass): ClassesGeneral.LineClass@1d766806
   2 (ClassesGeneral.LineClass): ClassesGeneral.LineClass@48a77106
   3 (ClassesGeneral.LineClass): ClassesGeneral.LineClass@68ed662d
...

Που γίνεται το Fail?

Κάπου διάβασα ότι πρέπει να κάνω τη δική μου toString() για να εκτυπωθούν σωστά τα elements αλλά δεν κατάλαβα ακριβώς γιατί και πως...

Για πείτε γνώμες...


P.S.: Απαντήσεις του στυλ βάλε arraylists είναι πιο γαμάτες θα αγνοούνται:P
Logged

Without order nothing can exist without chaos nothing can evolve

Timeo hominem unius libri
The minstrel
DoomGuard
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 884



View Profile
Re: Java - Vectors
« Reply #1 on: March 01, 2013, 18:20:29 pm »

Αν δεν υλοποιήσεις την δικιά σου toString() για να μετατρέψεις σε εκτυπώσιμη μορφή το αντικείμενο, χρησιμοποιείται η Object.toStrint() που εκτυπώνει όνομα κλάσης και θέση μνήμης νομίζω.

Για να δουλέψει το παραπάνω πρέπει να αλλάξεις το
Code:
Object element = LineVector.elementAt(i);
σε
Code:
LineClass element = LineVector.elementAt(i);
« Last Edit: March 01, 2013, 18:24:07 pm by DoomGuard » Logged

Code:
long long ago; /* In a galaxy far far away */

^^DaRk_HunTeR
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2149


0001 0010 0100 0010


View Profile
Re: Java - Vectors
« Reply #2 on: March 01, 2013, 18:25:23 pm »

Quote from: DoomGuard on March 01, 2013, 18:20:29 pm
Αν δεν υλοποιήσεις την δικιά σου toString() για να μετατρέψεις σε εκτυπώσιμη μορφή το αντικείμενο, χρησιμοποιείται η Object.toStrint() που εκτυπώνει όνομα κλάσης και θέση μνήμης νομίζω.
και στην Object.toString τι θα δωσω?
 
Quote

Για να δουλεψει το παραπάνω πρέπει να αλλάξεις το
Code:
Object element = LineVector.elementAt(i);
σε
Code:
LineClass element = LineVector.elementAt(i);
Ναι αυτό φαίνεται σωστό(ήταν απροσεξία) απλά δεν άλλαξε κάτι στο αποτέλεσμα...


Αυτό που θέλω είναι να γίνονται print οι integers μέσα στα elements...
« Last Edit: March 01, 2013, 18:27:55 pm by ^^DaRk_HunTeR » Logged

Without order nothing can exist without chaos nothing can evolve

Timeo hominem unius libri
The minstrel
antares
Νεούλης/Νεούλα
*
Gender: Male
Posts: 48


Do you want some...thmmy, darling?


View Profile
Re: Java - Vectors
« Reply #3 on: March 01, 2013, 18:26:40 pm »

Ναι στην κλάσση LineClass πρέπει να κάνεις override την μέθοδο toString(). Π.χ.


public class LineClass {

  @Override
  public String toString() {
     return "Edw ektypwneis to object sou me vash ta members";
  }

}
Logged
^^DaRk_HunTeR
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2149


0001 0010 0100 0010


View Profile
Re: Java - Vectors
« Reply #4 on: March 01, 2013, 18:44:08 pm »

Αυτό είναι το σώμα της κλάσης...
Code:
public class LineClass {

   private int akro1x;
   private int akro1y;
   private int akro2x;
   private int akro2y;
   private String linestring;

   public LineClass(){}
   public void setAkro1(int x1, int y1){
      akro1x=x1;
      akro1y=y1;
   }
   public void setAkro2(int x2, int y2){
      akro2x=x2;
      akro2y=y2;
   }
   public void setLineString(String s){  linestring=s;  }

   public int getAkro1x(){  return akro1x; }
   public int getAkro1y(){  return akro1y; }
   public int getAkro2x(){ return akro2x; }
   public int getAkro2y(){ return akro2y; }
   public String getLineString(){  return linestring;  }

    public String toString() {
//return akro1x;
     return this.getClass().getName();
}


}

Με τις τελευταίες γραμμές κώδiκα στο printing έφυγε το "@... " αλλά πάλι δε βλέπω integers...


----- Εδιτ ----- 

'Ακυρο νομίζω το βρήκα, δε χρειαζόταν τπτ απο όλα αυτα...
« Last Edit: March 01, 2013, 19:07:32 pm by ^^DaRk_HunTeR » Logged

Without order nothing can exist without chaos nothing can evolve

Timeo hominem unius libri
The minstrel
DoomGuard
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 884



View Profile
Re: Java - Vectors
« Reply #5 on: March 01, 2013, 19:09:46 pm »

Code:
    public String toString() {
    return Integer(this.akro1x).toString() +","+ Integer(this.akro1y).toString()+":"+Integer(this.akro2x).toString()+","+Integer(this.akro2y).toString();
    }
Logged

Code:
long long ago; /* In a galaxy far far away */

^^DaRk_HunTeR
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 2149


0001 0010 0100 0010


View Profile
Re: Java - Vectors
« Reply #6 on: March 02, 2013, 04:24:33 am »

@Doomguard
Αυτό που έγραψες ήταν λάθος γιατί το typecasting δε χρειάζεται(είναι ούτως ή άλλως integer), ούτε το .toString(), σε αυτό το σημείο, χρειάζεται και δε δουλεύει εν προκειμένω... (πετάει error)

Βρήκα δύο λύσεις δεν ξέρω αν κάποια είναι πιο σωστή απο την άλλη...

Η πρώτη είναι η υλοποίηση της toString() στην LineClass
Code:
 public String toString() {
  return "Akro1 = ("+akro1x +","+akro1y+"): Akro2 = ("+akro2x+","+akro2y+")";
    
   }

Και μετά η εμφάνιση αυτής στη main:
Code:
for(int i=0;i<LineVector.size();i++)
     System.out.println(LineVector.get(i).toString());        
       

Η δεύτερη είναι η τροποίηση του printing που έριξα παραπάνω ως εξής(χωρίς δλδ toString()):
Code:
// For each element in the vector, print out the index, the
// class of the element, and the element itself
for (int i = 0; i < LineVector.size(); i++) {
         LineClass element = LineVector.elementAt(i);
                //System.out.println("   " + i + " (" +element.getClass().getName() + "): " +element.getAkro1x());
           System.out.println(" Akro1["+i+"]:  ("+element.getAkro1x()+","+element.getAkro1y()+")");
         System.out.println(" Akro2["+i+"]:  ("+element.getAkro2x()+","+element.getAkro2y()+")");
}
System.out.println();


Εμένα μου φαίνονται και τα δύο σωστά...
Το σίγουρο είναι ότι βγάζουν τα ίδια(αναμενόμενα) αποτελέσματα...
« Last Edit: March 02, 2013, 04:47:33 am by ^^DaRk_HunTeR » Logged

Without order nothing can exist without chaos nothing can evolve

Timeo hominem unius libri
The minstrel
Issle
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 602



View Profile
Re: Java - Vectors
« Reply #7 on: March 03, 2013, 23:13:44 pm »

Η δεύτερη λύση είναι καλύτερη. Συναρτήσεις βασικών αντικειμένων στην java όπως αυτές του Object/Thread κτλ καλό είναι να μην γίνονται Override γιατί έχουν προκαθορισμένη σημασία. Αν ένας προγραμματιστής πάρει τον κώδικά σου και χρησιμοποιήσει την toString() για key πχ σε ένα Map<> και υποθέσει οτι επιστρέφει το @-Representation του αντικειμένου χωρίς να ξέρει οτι εσύ έκανες Override μπορεί να υποπέσει σε τρελά bugs μετά. Οπότε ότι κάνεις print καλύτερα να γίνεται σε διαφορετική method.
Logged

We can be a nation that believe in war,
And still tells the world that we don't.
Let the flag for hypocrisy fly high from every pole
We're a little bit country, and we're a little bit rock n' roll
Pages: [1] Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...