Add example of nested arrays and Python tuple/list as func arg

This commit is contained in:
Peter Badida 2019-01-03 00:06:41 +01:00
parent 01c2590298
commit 6a59b4eb06
2 changed files with 102 additions and 0 deletions

View File

@ -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<Object> jlist = new ArrayList<Object>();
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<Object> str_list = new ArrayList<Object>(
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());
}
}

View File

@ -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))