CSC/ECE 517 Summer 2008/wiki1 6 c9): Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 138: Line 138:
num = [1 ,2 , 3, 4, 5,"apple"]
num = [1 ,2 , 3, 4, 5,"apple"]


checks if array is empty : -            num.empty        # =>true (if empty) false otherwise<nowiki>Insert non-formatted text here</nowiki>
checks if array is empty : -            num.empty        # =>true (if empty) false otherwise
 
size of an array :-                      num.size                # =>6 (the size of an array)
size of an array :-                      num.size                # =>6 (the size of an array)
type of the element:-                    num[0].size    # =>fixnum
type of the element:-                    num[0].size    # =>fixnum
                                         num[5].class  # =>string
                                         num[5].class  # =>string
first element of the array:-            num.first        # =>1
first element of the array:-            num.first        # =>1
last element of the array :-            num.last          # =>apple
last element of the array :-            num.last          # =>apple
Adding an element :-                    num.push "orange"      # =>[1 ,2 , 3, 4, 5,"apple","orange"]
 
Adding an element :-                    num.push "orange"      # =>[1 ,2 , 3, 4,5,"apple","orange"]
 
removing the last element                num.pop                # =>[1 ,2 , 3, 4, 5,"apple"])
removing the last element                num.pop                # =>[1 ,2 , 3, 4, 5,"apple"])
accesing array element                  num.at[0]  # =>1
accesing array element                  num.at[0]  # =>1
removes all elements from self          num.clear              # =>[]
 
removes all elements from array          num.clear              # =>[]
 
reverse the array                        num.reverse          #=> ["apple", 5, 4, 3, 2, 1]
reverse the array                        num.reverse          #=> ["apple", 5, 4, 3, 2, 1]
return the index of an element         num.rindex("b")  #=> nil
return the index of an element         num.rindex("b")  #=> nil
                num.rindex("2")        #=> 1
 
                num.rindex("2")        #=> 2
 
sorting an array  (x = [2, 4 3])        x.sort                  #=>[2, 3, 4]
sorting an array  (x = [2, 4 3])        x.sort                  #=>[2, 3, 4]

Revision as of 01:19, 30 May 2008

Array in Java:-

An array is an indexed collection of items of same data type.We are not allowed to declare an array consist of multiple data type(like double and integer in same array).

Arrays in Ruby :-

Arrays are the indexed collection of objects in Ruby, which is accessible using keys.The key is always an integer in a an array and the array can grow as needed.Ruby support to store different type of data to store in one array.An array can can have integer, floating point number or a string.

Declaration of array in Java:-

integer [] employee; double employee[];

The square brcaket indicates the array declaration.

It can alos be declared in one line as :-

integer employee = new integer [5];

Now the Employee array has allocated the memory to store the five integers.Unless we have initialised the array at the time of declaration we need to specify the size of an array before using it.

The indexing of an array starts from 0 to size-1.It means if the array is of size 5 then first element is stored at employee[0] and the last one is at employee[4] .In an array the elements can be initialised one by one upto the previously declared size of an array.

for ex:-

        String employee = new String [5]
       for(int i = 0; i <5 ; i++)
       {
         employee[i] = i;
       } 

If elements are initialised at the time of the declaration then ther is no need of specifying a size to an array.The size of an array is same as the number of initialised elements. for ex:-

String [] weekday = {Monday,Tuesday,wednesday,Thursday,friday,Saturday,Sunday};

In this example the size of an array is 7.


Declaration of array in Ruby:-

Ruby does not require to declare the size of an array.

x = ['cat' , 5 ,6 ,'fly']
y = ['apple' , 'orange', 'pineapple']

An array can be declared with the new keyword also. for ex:

num = array.new

num << 3

num << 4

Now that array num has two element 3 and 4.

The indexing of an array starts from 0 and goes up to the size-1. Ruby supports the negative indexing in array.Negative index counts backward and x[-1] is same as referencing the last element of x.


Adding elements in the existing array :-

Java does not allow to add more elements than the size of an existing array.If user is interested to add more items,the size of the array needs to be increased. Ruby is very flexible with adding the number of elements in the array at run time of any data type since ruby is not bound to declare the size of an array before using it.For ex:-

num = [1 ,2 ,4, 3, 5]

num + ["apple", "cycle"]

num =>[1, 2, 4 , 3,"5", "apple", "cycle"]

Another way to add the element is :-

num.push "berry"

It adds the berry at last in the array.

num =>[1, 2, 4 , 3,5,"Berry"]

Adding an element at a particular index is num[index number] = item

or num.insert(2,7)

num =>[1, 2,7,4,3,5]


Passing an array as a argument in a method:-

In Java an array can be passed to a method as an argument like a variable is passed to a method with some additional rules. For ex: -

       integer company (integer []employee)
       {
        return 0;        
       }
       company(employee);

When an array is passed to a method only the reference of the array is passed the copy of the array is not created in the method.

Ruby also provide the functionality of passing an array as a argument in methods. The argument name in the declaration of the method starts with the "*" symbol indicates that the argument is an array.

def hello(*args)

puts #{args.join(",")}

end

hello('jon' ,'Mary') #=> jon,Mary


Deletion of an element from an array:-

In Java Deletion requires some kind of search to locate to particular item in the array.There are two ways to remove an element from an array. The first approach is to reset the array element to null but this can cause holes in the array.The second approach is to store the real occurence at the begining of the array and null refernces can be kept at the end of the array. The second approach comes up with two possible solutions.If the jth element is removed then the element starting from the j+1th position to the null will be shifted one position lower.And the second possibility is to replace the removed null refernce with the last refernece of an array.This technique can be used only if array is not arranged in aparticular order otherwise the first possibility is suitable to use.

In ruby deleting an element from an array is very easy as compared to Java.The adjustment of elements are done automatically.If an element is removed from an jth position then the elements from the position j+1 moves one position down. For ex:- num = [1, 2, 3, 4, 5]

num.delete(3) #=> [1 ,2 ,3, 5]

num .delete_at(2) #=> [1, 2,4 ,5]


Some useful functionality with array:-

num = [1,2,3,4,5]

In Java to find the length of an array we can use an inbuilt function num.length => 5 and to sort the array ,reverse the array etc we have to write the algorthim depending on the requirment.

Ruby comes up with lots of easy built in methods that makes array very easy to use. For ex:-

num = [1 ,2 , 3, 4, 5,"apple"]

checks if array is empty : - num.empty # =>true (if empty) false otherwise

size of an array :- num.size # =>6 (the size of an array)

type of the element:- num[0].size # =>fixnum

                                        num[5].class   	 # =>string

first element of the array:- num.first # =>1

last element of the array :- num.last # =>apple

Adding an element :- num.push "orange" # =>[1 ,2 , 3, 4,5,"apple","orange"]

removing the last element num.pop # =>[1 ,2 , 3, 4, 5,"apple"])

accesing array element num.at[0] # =>1

removes all elements from array num.clear # =>[]

reverse the array num.reverse #=> ["apple", 5, 4, 3, 2, 1]

return the index of an element num.rindex("b") #=> nil

num.rindex("2") #=> 2

sorting an array (x = [2, 4 3]) x.sort #=>[2, 3, 4]