diff --git a/examples/arraylists/arraylist.java b/examples/arraylists/arraylist.java new file mode 100644 index 0000000..235b3ea --- /dev/null +++ b/examples/arraylists/arraylist.java @@ -0,0 +1,48 @@ +// javac arraylist.java +// java arraylist + +import java.lang.String; +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; + + +public class arraylist { + public static void main(String[] args) { + // Object based empty ArrayList + ArrayList jlist = new ArrayList(); + System.out.println(jlist); + System.out.println(jlist.size()); + + // String array + String[] str_array = {"a", "b", "c"}; + System.out.println(str_array.toString()); + System.out.println(str_array.length); + + // add the array of strings to the list + jlist.add(str_array); + System.out.println(jlist.toString()); + System.out.println(jlist.size()); + + // create a new ArrayList from String array + ArrayList str_list = new ArrayList( + Arrays.asList(str_array.toString()) + ); + jlist.add(str_list); + System.out.println(jlist.toString()); + System.out.println(jlist.size()); + + // add an empty Object to ArrayList + jlist.add(new Object()); + System.out.println(jlist.toString()); + System.out.println(jlist.size()); + + // new ArrayList to wrap everything up + ArrayList plain_list = new ArrayList(); + plain_list.add(str_array); + plain_list.add(str_list); + plain_list.add(jlist); + System.out.println(plain_list.toString()); + System.out.println(plain_list.size()); + } +} diff --git a/examples/arraylists/arraylist.py b/examples/arraylists/arraylist.py new file mode 100644 index 0000000..c70af51 --- /dev/null +++ b/examples/arraylists/arraylist.py @@ -0,0 +1,54 @@ +# pylint: disable=invalid-name +''' +Example of nested ArrayList and passing empty tuple/list to Java functions. +''' + +from __future__ import unicode_literals, print_function +from jnius import autoclass, cast # pylint: disable=import-error + +String = autoclass('java.lang.String') +List = autoclass('java.util.List') +Arrays = autoclass('java.util.Arrays') +ArrayList = autoclass('java.util.ArrayList') +JavaArray = autoclass('java.lang.reflect.Array') +Object = autoclass('java.lang.Object') + + +def sep_print(*args): + ''' + Separate args because in <80char console (e.g. Windows) + is the output barely readable with [[, @, ;, ,, ... + ''' + print(*args) + print('-' * 10) + + +# Object based empty ArrayList +jlist = ArrayList() +sep_print(jlist, jlist.toString(), len(jlist)) + +# String array +str_array = JavaArray.newInstance(String, 3) +for i, item in enumerate(('a', 'b', 'c')): + str_array[i] = String(item) +sep_print(str_array, len(str_array)) + +# add the array of strings to the list +jlist.add(str_array) +sep_print(jlist, jlist.toString(), len(jlist)) + +# create a new ArrayList from String array +str_list = ArrayList(Arrays.asList(str_array)) +jlist.add(str_list) +sep_print(jlist, jlist.toString(), len(jlist)) + +# add an empty Object to ArrayList +jlist.add(Object()) +sep_print(jlist, jlist.toString(), len(jlist)) + +# new ArrayList to wrap everything up +plain_list = ArrayList() +plain_list.add(str_array) +plain_list.add(str_list) +plain_list.add(jlist) +sep_print(plain_list, plain_list.toString(), len(plain_list))