Skip to content

Instantly share code, notes, and snippets.

@vteial
Last active December 15, 2015 21:59
Show Gist options
  • Select an option

  • Save vteial/5329336 to your computer and use it in GitHub Desktop.

Select an option

Save vteial/5329336 to your computer and use it in GitHub Desktop.
Reverse the contents of array using Java, Groovy, JavaScript and Dart
// To live run use online dart console from here http://try.dartlang.org/
List<int> reverseArray0(List<int> items) {
List<int> ritems = new List<int>();
ritems.addAll(items.reversed);
return ritems;
}
List<int> reverseArray1(List<int> items) {
List<int> ritems = new List<int>(items.length);
for(int i = items.length-1, j = 0; i >= 0; i--, j++) {
ritems[j] = items[i];
}
return ritems;
}
void reverseArray2(List<int> items) {
int e = items.length ~/ 2;
for(int i = 0, j = items.length-1; i < e; i++, j--) {
int t = items[i];
items[i] = items[j];
items[j] = t;
}
}
void reverseArray3(List<int> items) {
reverseArray33(items, 0, items.length-1);
}
void reverseArray33(List<int> items, int i , int j) {
if(i < j) {
int t = items[i];
items[i] = items[j];
items[j] = t;
reverseArray33(items, ++i, --j);
}
}
void main() {
var items = <int>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
print("Given Items = $items");
items = reverseArray0(items);
print("Reverse Version 0 : $items");
items = reverseArray1(items);
print("Reverse Version 1 : $items");
reverseArray2(items);
print("Reverse Version 2 : $items");
reverseArray3(items);
print("Reverse Version 3 : $items");
}
// To live run use online groovy console from here http://groovyconsole.appspot.com/
def reverseArray0 = { def items ->
return items.reverse(false)
}
def reverseArray1 = { def items ->
def nItems = [];
int j = items.size()-1;
for(int i = 0; i < items.size(); i++) {
nItems[i] = items[j--];
}
return nItems;
}
def reverseArray2 = { def items ->
int j = items.size() - 1;
int e = items.size() / 2;
for(int i = 0; i < e; i++) {
def t = items[i];
items[i] = items[j];
items[j--] = t;
}
}
def reverseArray33 = {}
reverseArray33 = { def items, def i, def j ->
if(i < j) {
def t = items[i]
items[i] = items[j]
items[j] = t;
reverseArray33(items, ++i, --j)
}
}
def reverseArray3 = { def items ->
reverseArray33(items, 0, items.size() - 1)
}
def items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
println "Given Items = $items";
items = reverseArray0(items);
println "Reverse Version 0 : $items"
items = reverseArray1(items);
println "Reverse Version 1 : $items"
reverseArray2(items);
println "Reverse Version 2 : $items";
reverseArray3(items);
println "Reverse Version 2 : $items";
public class JReverseArrayTest {
static int[] reverseArray0(int[] items) {
// yet to figure out sdk library's method to reverse array items
return items;
}
static int[] reverseArray1(int[] items) {
int[] nItems = new int[items.length];
for (int i = 0, j = nItems.length - 1; i < items.length; i++, j--) {
nItems[i] = items[j];
}
return nItems;
}
static void reverseArray2(int[] items) {
int e = items.length / 2;
for (int i = 0, j = items.length - 1; i < e; i++, j--) {
int t = items[i];
items[i] = items[j];
items[j] = t;
}
}
static void reverseArray3(int[] items) {
reverseArray3(items, 0, items.length - 1);
}
private static void reverseArray3(int[] items, int i, int j) {
if (i < j) {
int t = items[i];
items[i] = items[j];
items[j] = t;
reverseArray3(items, ++i, --j);
}
}
static String toPrintString(int[] items) {
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < items.length; i++) {
sb.append(items[i] + ",");
}
sb.append("]");
return sb.toString();
}
public static void main(String args[]) {
int items[] = { 1, 2, 3, 4, 5, 6, 7 };
System.out.println("Given Items = " + toPrintString(items));
System.out.println("Reverse Version 0 : "
+ toPrintString(reverseArray0(items)));
System.out.println("Reverse Version 1 : "
+ toPrintString(reverseArray1(items)));
reverseArray2(items);
System.out.println("Reverse Version 2 : " + toPrintString(items));
reverseArray3(items);
System.out.println("Reverse Version 3 : " + toPrintString(items));
}
}
// To live run use online java script console from here http://repl.it/
// Uncomment below commented block if you are going to run in browser
/*
var println = function(message) {
console.log(message);
};
*/
// Comment the above commented block if you are going to run in Eclipse
var reverseArray0 = function(items) {
return items.reverse();
};
var reverseArray1 = function(items) {
var nItems = [], j = items.length - 1;
for ( var i = 0; i < items.length; i++) {
nItems[i] = items[j--];
}
return nItems;
};
var reverseArray2 = function(items) {
var e = Math.ceil(items.length / 2);
for ( var i = 0, j = items.length - 1; i < e; i++, j--) {
var t = items[i];
items[i] = items[j];
items[j] = t;
}
};
var reverseArray3 = function(items) {
reverseArray33(items, 0, items.length - 1);
};
var reverseArray33 = function(items, i, j) {
if (i < j) {
var t = items[i];
items[i] = items[j];
items[j] = t;
reverseArray33(items, ++i, --j);
}
};
var items = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ];
println("Given Items = " + items);
items = reverseArray0(items);
println("Reverse Version 0 : " + items);
items = reverseArray1(items);
println("Reverse Version 1 : " + items);
reverseArray2(items);
println("Reverse Version 2 : " + items);
reverseArray3(items);
println("Reverse Version 3 : " + items);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment