Tuesday, May 4, 2010

ජාවා තුල Arrays භාවිතය I

Array එකක් යනු ස‍රළම ආකාරයේ දත්ත ව්‍යුහයක් (Data Structure) ලෙස දක්වන්න පුලුවන්. අපි මීට පෙර විචල්‍යයන්(variables) ගැන කතා කලා. Array එකක් යනු එකම දත්ත ආකාරයක්(data type) ඇති විචල්‍යයන් සමූහයක්. මෙහිදී array එකකට නිශ්චිත විශාලත්වක් ඇතිබව විශේෂයෙන් සඳහන් කල යුතුයි.

Array එක සමන්විත වන variables, elements යනුවෙන් හඳුන්වනවා. Array එක තුල element එකක් හඳුනා ගැනීමට භාවිතා වන්නේ index එකයි. index එකෙහි ආරම්භක අගය 0 වනවා. අපි පහත සටහන ආධාරයෙන් array එකක ව්‍යුහය පිලිඹඳ අධ්‍යයනය කරමු.


 ArrayNum යනු array එක සඳහා දී ඇති නමයි. 0 වන index එක ලෙස 23 ද, අවසාන index එක (5) ලෙස 8 ද මම මෙහිදී ආදේශ ක‍ර තිබෙනවා. Array එකේ size එක (length) ලෙස 6 පවතිනවා(මුලු elements ගණන).  
ArrNum යන්න RAM එකෙහි ස්ථාපනය වී ඇති array එකට pointer එකක් හා සමානයි. නමුත් java pointer arithmetic සඳහා සහාය නොදක්වන බව මතක තබාගත යුතුයි.

අපි දැන් බලමු ජාවා වල array එකක් create ක‍රගත හැකි ආකාර.
syntax for creating arrays:
method 01
DataType ArrayName[];
ArrayName=new DataType[SIZE];
Ex :
int MyArray[];
MyArray=new int[5];


method 02
DataType ArrayName[]=new DataType[SIZE];
Ex :
int MyArray[]=new int[5];

method 03
DataType ArrayName[]={value1,value2,value3,value_n};
Ex :
int MyArray[]={23,45,67,23,-32,66};

method 01 හා method 02 භාවිත ක‍ර arrays සෑදීමේදී array එකේ size එක(elements ගණන) ලබා දිය යුතු වුවත් method03 භාවිත කිරීමේදී එසේ අවශ්‍ය නෑ. Array එකක් සෑදු පසු එහි size එක පසුව වෙනස් කිරීම කල නොහැකියි. 


අපි දැන් බලමු සකසන ලද array එකකට values assign ක‍රන ආකාරය. 
example:
MyArray[0]=44;
MyArray[4]=68;
මෙහිදී අප සකසන ලද array එකේ උප‍රිම index එකට වඩා වැඩි අගයක් index ලෙස ලබා දුනහොත් ArrayIndexOutOfBoundsException එකක් ලබාදීම සිදුවනවා. අපි exception පිලිබ්ඳ ඉදිරි පාඩමකදී පුළුල්ව සාකච්ඡා ක‍රමු.

Java Arrays හා සම්බන්ඳ length property එක

ජාවාහි සෑම array එකකටම length නම් property එකක් තිබෙනවා. මෙමගින් අපිට array එකක size එක(number of elements) ලබාගන්න පුලුවන්. මෙම නිසා C/C++ වලදී array භාවිතාකිරීමට වඩා java තුලදී arrays භාවිතා කිරීම පහසු ක‍රනවා.
උදා : C වලදී function එකකට array එකක් pass ක‍රන විට එහි size එකත් වෙනම parameter එකක් මගින් pass කල යුතුවනවා. නමුත් ජාවා තුලදී length property එක මගින් size එක ලබාගත හැකිනිසා එසේ size එක වෙනම variable එකකින් pass කල යුතු නැහැ. array එක තුලින්ම එහි size එක ලබගන්න පුලුවන්. 



අපි දැන් ඉහත සටහනේ ඉදිරිපත් ක‍රඇති array එක ජවා තුල නිර්මාණය ක‍රගැනීම සඳහා සුදුසු කේතයක් ලියමු.
Code 01
int ArrNum[]={23,39,14,25,23,8};
Code 02
int ArrNum[]=new int[6];
ArrNum[0]=23;
ArrNum[1]=39;
ArrNum[2]=14;
ArrNum[3]=25;
ArrNum[4]=23;
ArrNum[5]=8;
දැන් අපි බලමු ඉහත සකස් ක‍රගත් Array එකෙහි values පරිශීලනය(access) ක‍රන ආකාරය.
Access values one by one:
int value_at_index_4 = ArrNum[4];
int value_at_index_1 = ArrNum[1];
Access values using a for loop:
for(int i=0;i < ArrNum.length ; i++){
 int value_at_index_i=ArrNum[i];
 System.out.println(value_at_index_i);
}
Access values using a for-each loop:
for(int elem:ArrNum){
 int value_at_index_i=elem;
 System.out.println(value_at_index_i);
}
Access values using a while loop:
int i=0;
while( i < ArrNum.length ){
 int value_at_index_i=ArrNum[i];
 System.out.println(value_at_index_i);
 i++;
}
පහත ජාවා applet එක භාවිතා ක‍ර array එකක් ක්‍රියා කරන අයුරු අධ්‍යයනය කරන්න.

9 comments:

  1. හ්ම්...නියමයි...දිගටම ලියන්න....ඔඹට ජය!!!!

    ReplyDelete
  2. ඔබලාගේ අදහස් වලට බොහොම ස්තුතියි.

    ReplyDelete
  3. පහත ජාවා applet එක භාවිතා ක‍ර array එකක් ක්‍රියා කරන අයුරු අධ්‍යයනය කරන්න
    meeta pahalin empty space1k mata pennanne...applet1 penne ne...chrome browser

    ReplyDelete
    Replies
    1. OS එක ලිනක්ස් නම් ඒකට හේතුව ice tea java applet plugin එක වෙන්න පුලුවන්.

      *oracle* latest java version එක ද දාල තියෙන්නෙ?

      Delete
  4. windows8 os1...jdk 5.0.latest version1 link1 denna puluwanda?

    ReplyDelete
    Replies
    1. මෙතනින් ගන්න
      http://java.com/en/download/index.jsp

      default ආපු ජාව වර්ශන් එක අයින් කරල අලුත් එක දාන්න පුලුවන් නම්.

      Delete
  5. brother,method2 Ex2 typing mistake

    [ ] missing

    ReplyDelete