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