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

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 64: Line 64:
<br>
<br>
If we want to increase the size of the array in the previous example we just use the following:
If we want to increase the size of the array in the previous example we just use the following:
<pre>a[20] = "new item"<pre>
<pre>a[20] = "new item"</pre>
Items a[2] through a[19] are set to nil
Items a[2] through a[19] are set to nil



Revision as of 19:16, 6 June 2008

Introduction

Both the Ruby and Java support Arrays as part of the language. Ruby supports Hashtables as part of the language but Java does not. In this article I will compare the use of Arrays and hashtables in Ruby and Java.

Arrays and Hashtables

Arrays and Hashtables are basic data structures that are present in some form in almost all programming languages.

Arrays provide a way to store a list of objects and access the object based on it's position in the list. Access to the array elements is very fast if the programmer knows the value of the index where the item is located. Access to the array elements may be slow if the index is not known. This may require the programmer to search a large list of items resulting in poor performance.

Hashtables are similar to arrays except the index value is typically a string or other object. Hashtable look up performance is generally very good. The contents of a hashtable are usually not ordered.

Array Comparison

Basic Array Operation Comparison

The following table summarizes some of the basic array operations in Ruby and Java

Array Function Ruby Java
Create h = [] or

h = Array.new

String[] h = new String[3];
Initialize h = ["one",1,"two"] String[] h = {"one","two"};
Element Access h[0] h[0]


When comparing Ruby and Java one of the biggest differences in the syntax and use of the languages is due to the 'Typing' of the languages. The Java language is Strong Typed while Ruby is Dynamically Typed. This is apparent when comparing the Array declaration syntax between the two languages.

Declaring and populating an Array in Ruby:
a = Array.new
a[0] = "one"
a[1] = "two"


Declaring the same array in Java

String[] a = new String[2];
a[0] = "one";
a[1] = "two";

Note that when we create the array in Java we have to define the type of elements in the array as well as the size.

Ruby will allow us to store any object in the array as well as different types in the same array.
We can create an array of different types using Ruby

a = [1,"one",1.99]


If we want to increase the size of the array in the previous example we just use the following:

a[20] = "new item"

Items a[2] through a[19] are set to nil

Hashtable Comparison

Hashtable Function Ruby Java
Create h = {} or

h = Hash.new

h = new Hashtable();
Initialize h = {"key1" => "value1", "key2" => "value2" } Not Available
Add Key to Existing Hashtable h["key3"] = "value3" h.put("key3",new String("value3"));
Remove a Key - Value pair h.delete("key1") h.remove
Check if Key Exists h.key?("key1") h.containsKey("key1")
Check if Value Exists h.value?("value1") h.contains(new String("value1"));
Retrieve a Value Given a Key h["key1"] h.get("key1")

External Links

Java Hastable Examples
Java Hashtable Documentation
Ruby vs. Java A Matter of Taste