Saturday, March 19, 2011

JAVA තුල VECTORS භාවිතය

JAVA තුල ARRAYS භාවිතය ගැන මීට කලින් කොටස් වලදී මගේ මිත්‍රයා කණිෂ්ක විස්තර කරා ඔයාලට මතක ඇති.දැන් මම ඒ ARRAYS වලට තරමක් දුරට ආසන්නතාවයක් තියෙන ඒත් තරමක් වෙනස් VECTORS පිලිබදව ඔබව තරමක් දුරට දැනුවත් කරන්නයි හදන්නේ. සමහර විට මේ වන විටත් ඔබට VECTORS පිලිබද යම් අදහසක් ඇති කියා මා සිතනවා.

එහෙනන් අපි ප්‍රථමයෙන්ම බලමු , ඇත්තතටම මේ VECTOR කියල කියන්නෙ මොකක්ද කියලා.සරලව කිව්වොත් , Vector එකක් කියන්නෙ , DYNAMIC( ගතික ) තත්වයේ පවතින ARRAY එකක්. VECTOR CLASS එක අන්තර්ගත වෙලා තියෙන්නේ JAVA වල java.util පැකේජය තුලයි. මෙම VECTOR එකට අවශ්‍යතාවය අනුව ස්වයන්ක්‍රීයව වර්ධනය වෙන්න පුලුවන්.තවද, VECTOR එකකට String Array සහ int Array වලදි වගේ නිශ්චිත ස්ථීර ඉඩ ප්‍රමාණයක් අවශ්‍ය වන්නේත් නෑ.කෙසේ හෝ ,Vector එක නිර්මාණය වීමෙන් අනතුරුව,එයට Elements Add කිරීම හෝ Remove කිරීමට අනුකූලව එහි ඉඩ ප්‍රමාණය වර්ධනය වීමට හෝ හැකිලීමට උදව් වෙනවා.
Array එකකදී වගේම ,Integer Index එකක් යොදාගෙන Access කරන්න පුලුවන් Elements/Components මෙහිදී ද අඩන්ගු වෙනවා.අපි දැන් සරලව VECTOR OBJECT එකක් නිර්මාණය කරගන්නා අයුරු සලකා බලමු.
  • ආරම්භක DEFAUT ප්‍රමාණය(size) සමග VECTOR එකක් නිර්මාණය කිරීම
    Vector v=new Vector();
  • ආරම්භක ප්‍රමාණය සමග VECTOR එකක් නිර්මාණය කිරීම
    Vector v = new Vector(100)
    මෙහි v වෙනුවට අපට අවශ්‍ය වෙනත් නමක් කැමතිනම් යොදාගත හැකියි.
VECTORS වල METHODS භාවිතා කිරීම
VECTOR එකක අවසානයට ELEMENTS ADD කිරීම
v.add(s); //  Vector v එකේ අවසානයට s Add කිරීම
VECTOR එකකින් පිටතට ELEMENT VALUES ලබා ගැනීම
v.get(i); //Vector එකේ i වෙනි index එකේ object එක return කරනවා
v.firstElement(); //Vector v එකේ ප්‍රථම element එක return කිරීම 
v.lastElement();  //Vector v එකේ අවසාන element එක return කිරීම  
 VECTOR එකේ ELEMENTS ඉවත් කිරීම
v.clear(); //Vector v එකේ සියලුම Elements ඉවත් කිරීම
v.remove(i); //Vector v එකේ i index එකේ element එක ඉවත් කර අනෙක්  පහල elements ටික shift කිරීම    
 VECTOR එකේ SIZE එක ලබා ගැනීම.
v.size(); //Vector v එකේ තිබෙන මුලු elements ප්‍රමාණය Return කරයි.

VECTORS භාවිතය සරල නිදසුනක් මගින්

දැන් අපි VECTORS වල METHODS භාවිතය නිදර්ශනයක් මාර්ගයෙන් සරල ලෙස වටහා ගැනීමට උත්සාහ කරමු.පහත දක්වා ඇත්තේ එම JAVA වැඩසටහනයි.
/*
# Explaining Java Vector Operations
# Madhawa Udayakantha Gunasekara
# Blog   : http://javaxclass.blogspot.com    
*/

import java.util.*;

public class VectorOperation {

 public static void main(String[] args) {

 //create a Vector object
  Vector v = new Vector();

 /*
 Add elements to Vector (to the end of the vector)
 */
  v.add("1");
  v.add("2");
  v.add("3");


 /*
 display elements of Vector by using get method
 */
 System.out.println("Getting Vector Elements");
        for(int i=0;i<v.size();i++)
          System.out.println(v.get(i));

 System.out.println();

 //displaying first and last elements
  System.out.println("Display only first and last elements");
  System.out.println("First Element: "+v.firstElement());
  System.out.println("Last Element: "+v.lastElement()+"\n");


 //Remove desired elements(in this example 1st index)
  v.remove(1);


 //Display the remaining elements after remove
  System.out.println("Remaining Elements");
  for(int i=0;i<v.size();i++)
   System.out.println(v.get(i));

 System.out.println();


 //Remove all elements from the vector
 v.clear();


 //Adding new list and print
  System.out.println("New Vector List");
   v.add("4");
   v.add("5");
  for(int i=0;i<v.size();i++)
   System.out.println(v.get(i));

  }

} 

පැහැදිලි කිරීම

ප්‍රථමයෙන්ම මෙහිදී අපගේ program එකට vectors භාවිතා කර ගැනීම උදෙසා java  හි ඇති util පැකේජය යොදාගෙන තිබෙනවා.මෙහිදී PUBLIC CLASS එක  VectorOperation යැයි ගනිමු.
 
  • 17 LINE: v නැමැති VECTOR OBJECT එක නිර්මාණය කරන ආකාරය දක්වා තිබෙනවා.
  • 22-24 LINES: VECTOR එකට අවශ්‍ය ELEMENTS ටික(1,2,3 යන ඒවා ) add() method එක අධාරයෙන් ADD කරයි.
  • 31-33 LINES:මෙහිදී get() METHOD එක අධාරයෙන් FOR LOOP එකක් යොදා ගෙන VECTOR එකේ ELEMENTS සියල්ල  කර ගැනීම සිදු කර ගෙන තිබෙනවා.මෙහිදී VECTOR එකේ ELEMENTS සියල්ල දක්වා එකින් එක යාම සදහා FOR LOOP එක තුල CONDITION එකේ v.size() යන්න යොදා ගෙන එහි මුලු ELEMENTS ගණන සමග සැසදීමක් කර තිබෙනවා.තවද මෙහිදී get() METHOD එක ELEMENTS පිටතට ලබා ගැනීමට භාවිතා කර තිබෙනවා.
  • 41-42 LINES: v.firstElement() මගින් VECTOR එකේ FIRST ELEMENT එකත්, v.lastElement() මගින් LAST ELEMENT එකත් පමණක් ලබා ගැනීම සිදු කර තිබෙනවා.
  • 46 LINE: VECTOR එකේ 1 වැනි INDEX එක පමණක් ඉවත් කර තිබෙනවා.
  • 50-52 LINES: 1 වැනි INDEX එකේ ELEMENT එක ඉවත් කරායින් පසුව ඉතිරිවන ELEMENT ටික PRINT කර ගැනීමට පෙර විස්තර කල පරිදිම FOR LOOP එකක් යොදා ගෙන තිබේ.
  • 58 LINE: VECTOR එක තුල පවතින සියලුම ELEMENTS ඉවත් කර VECTOR එක හිස් කිරීම. 
62-66 LINES: හිස්ව පවතින VECTOR එකට නැවත අලුතින් ELEMENTS ADD කර නැවත පෙර පරිද්දෙන්ම නව ELEMENTS ටික PRINT කර ගැනීම. 


OUTPUT එක

Compile: javac VectorOperation.java
Run : java VectorOperation 


    16 comments:

    1. When we are creating arrays, we need to specify the data type of the array. So in Vectors, don't we need to specify it ? Is it 'String' data type by default ???

      ReplyDelete
    2. I found some more information from this.
      http://leepoint.net/notes-java/data/collections/lists/vectors.html

      According to that, we can only store objects in the Vector but not primitive data type values.

      ReplyDelete
    3. thanx machan... a kiyanne Vector class eka ArrayList class ekata samanada? ArrayList class eketh apita me dewalma karanna puluwan neda?

      ReplyDelete
    4. @Sanjaya
      සන්ජය, Vector සහ ArrayList කියන classes සමාන ලක්‍ෂණ පෙන්වූවාට ඒවායේ අභ්‍යන්තර ක්‍රියාකාරීත්වය වෙනස්. මූලික වශයෙන් Vector සහ ArrayList එකක වෙනස තමයි Vector එකක් Synchronized ArrayList එක Synchronized නැහැ. ඒ කියන්නේ Vector එකක් Threads කිහිපයකින් එකවර ආරක්‍ෂාකාරීව access කරන්න පුලුවන්. නමුත් ArrayList එකකට එසේ කිරීම ආරක්‍ෂාකාරී නැහැ.

      නමුත් Vectors Synchronized නිසා ArrayList එකකට සාපේක්‍ෂව කාර්‍යක්‍ෂමතාඅවය ටිකක් අඩුයි. අවස්ථානුකූලව මේවා යොදා ගැනීම ක්‍රමලේඛක සතුයි.

      ReplyDelete
    5. This comment has been removed by the author.

      ReplyDelete
    6. @Tarindu
      Sorry , Blogger has hidden some part of code of above comment because it has identified some parts as HTML tags. I will put it again as an images.

      ReplyDelete
    7. @Tharindu
      Please refer to the following code.
      [[CODE]]

      ReplyDelete
    8. @THARINDU:
      Yes.We can't use primitive data type values in vectors.But String is not a primitive data type in java & String act as an object.So we caan use directly the String type in java vectors by default because of that.There are 8 primititive data types in java.They are byte, short, int, long, float, double, boolean and char.Then you cannot directly include these types in vectors.To include these primitive types like integer you can follow the way that my friend Kanishka has already described in the previous comment.

      ReplyDelete
    9. @tharindu:
      also follow this link dude.
      http://answers.yahoo.com/question/index?qid=20090224113246AANER76

      ReplyDelete
    10. Thanks for the replies. These information are very much useful. So keep on writing. Good luck

      ReplyDelete
    11. java mail api pawichchi karala gmail inbox eke mails read karanda kiyala denawanam ela.... jaya wewa...

      ReplyDelete
    12. Good Site... .NET walatath berida mee wage site ekak hadanna ?

      ReplyDelete
    13. JSP+Spring+Ajax Wage ewath bassamuda kollo issarahata.?

      ReplyDelete
    14. wow, good web site and it very usefully for sinhala students ..

      please continue it.

      thanks..

      ReplyDelete
    15. lovet para.......digtama liyamu aiya......

      ReplyDelete
    16. Thanks. This is very helpful. Keep up the good work

      ReplyDelete