Jython - การใช้ Java Collection types

นอกเหนือจากชนิดข้อมูลในตัวของ Python แล้ว Jython ยังมีประโยชน์ในการใช้คลาสคอลเลกชัน Java โดยการนำเข้าไฟล์ java.util package. รหัสต่อไปนี้อธิบายถึงคลาสที่ระบุด้านล่าง -

  • Java ArrayList object พร้อม add ()
  • remove()
  • get () และ set () เมธอดของคลาส ArrayList
import java.util.ArrayList as ArrayList
arr = ArrayList()
arr.add(10)
arr.add(20)
print "ArrayList:",arr
arr.remove(10) #remove 10 from arraylist
arr.add(0,5) #add 5 at 0th index
print "ArrayList:",arr
print "element at index 1:",arr.get(1) #retrieve item at index 1
arr.set(0,100) #set item at 0th index to 100
print "ArrayList:",arr

สคริปต์ Jython ข้างต้นสร้างผลลัพธ์ต่อไปนี้ -

C:\jython27\bin>jython arrlist.py
ArrayList: [10, 20]
ArrayList: [5, 20]
element at index 1: 20
ArrayList: [100, 20]

คลาส Jarray

Jython ยังใช้ไฟล์ Jarray Objectซึ่งอนุญาตให้สร้างอาร์เรย์ Java ใน Python ในการทำงานกับ jarray เพียงกำหนดประเภทลำดับใน Jython และส่งต่อไปยัง jarrayobject พร้อมกับประเภทของวัตถุที่อยู่ในลำดับ ค่าทั้งหมดภายใน jarray ต้องเป็นประเภทเดียวกัน

ตารางต่อไปนี้แสดงรหัสอักขระที่ใช้กับ jarray

รหัสประเภทอักขระ ประเภท Java ที่สอดคล้องกัน
Z บูลีน
ถ่าน
ไบต์
สั้น
ผม int
ยาว
ลอย
สองเท่า

ตัวอย่างต่อไปนี้แสดงโครงสร้างของ jarray

my_seq = (1,2,3,4,5)
from jarray import array
arr1 = array(my_seq,'i')
print arr1
myStr = "Hello Jython"
arr2 = array(myStr,'c')
print arr2

ที่นี่ my_seqถูกกำหนดให้เป็นทูเพิลของจำนวนเต็ม มันถูกแปลงเป็น Jarray arr1 ตัวอย่างที่สองแสดงให้เห็นว่า Jarray arr2 ถูกสร้างขึ้นจากmySttr stringลำดับ. ผลลัพธ์ของสคริปต์ข้างต้นjarray.py มีดังนี้ -

array('i', [1, 2, 3, 4, 5])
array('c', 'Hello Jython')