자바 카드는 데이터 구조에 대한 지원이 매우 제한적입니다. byte
및 short
및 선택적으로 int
과 같은 몇 가지 기본 유형이 있으며 기본 API에서는 사용되지 않습니다. 이러한 유형의 경우 JCSystem.makeTransientByteArray()
및 친구를 사용하여 두 가지 유형의 임시 (RAM) 배열을 생성 할 수 있습니다. 또한 new
을 사용하여 생성 된 byte[]
, short[]
및 Object[]
은 EEPROM에 저장됩니다.
자바 카드의 Object
클래스도 제거되었습니다.이는 hashCode()
과 같은 것이 없음을 의미합니다. Java SE 버전이 hashCode()
이면 정수가 반환되므로 문제가 발생할 수 있습니다. 정의 된 모든 데이터 컨테이너는 스마트 카드 또는 보안과 관련됩니다 (예 : APDU
및 Key
클래스).
기본적으로 Java SE에서 일반적인 유형의 HashMap
을 작성하려면 직접 작성해야합니다. 그런 경우 클래스가 키로 작동하도록 구현할 수있는 Hashable
인터페이스를 정의하는 것이 좋습니다. 구조는 올바른 유형의 메모리에서 생성되어야합니다. 지정하는 응용 프로그램의 경우 영구 단어 (new
키워드를 사용하여 만든 객체 인스턴스의 기본값)가 필요할 수 있습니다.
개인적으로 솔루션에 hashCode()
메서드가 필요하다는 것을 개인적으로 확신합니다. Object 배열을 만들고 요소를 반복하는 것이 더 쉽습니다.
감사합니다. @owlstead, 그리고 Object 배열에 대한 옵션으로 생각하고 있었지만 요점은 동일한 터미널에 대해 두 가지 이상의 구성 유형을 적용 할 수 있다는 것입니다 (2 또는 3) 그래서 그 Hashtable 인터페이스를 구현해야합니다. 내가 사용할 수있는 명확한 모범이 있다면, 나는 정말로 감사 할 것이다. –
@ManuelGustavoGuillen 필자는 자신 만의 List 인터페이스를 구현했습니다 (정수 지원이 부족하기 때문에 Java Cardized 버전). 그 중 하나가 내 회사 IP의 일부이므로 공유 할 수 없습니다. 'Hashtable' 또는'HashMap' 인터페이스를 구현하는 쉬운 방법은 없으며 아직 자바 카드 구현을 건너 가지 않았습니다. –