как я могу создать массив кортежей в jsp (java), например (a: 1, b: 2) (c: 3, d: 4) ... ...
Java: как создать массив кортежей
Ответы (6)
Создайте класс кортежа, например:
class Tuple {
private Object[] data;
public Tuple (Object.. members) { this.data = members; }
public void get(int index) { return data[index]; }
public int getSize() { ... }
}
Затем просто создайте массив экземпляров Tuple.
ArrayList
, который намного лучше реализует это поведение?
- person Pindatjuh; 02.05.2010
public Tuple
, а не public void Tuple
- person Mark Elliot; 03.05.2010
если вам нужен кортеж произвольного размера, стиль хэша perl, используйте Map<K,V>
(если у вас есть фиксированный тип значений ключей - ваш пример выглядит так, как будто Map<Character,Integer>
будет работать - в противном случае используйте необработанный тип). Посмотрите коллекции java для получения более подробной информации о различных реализациях.
Учитывая эти кортежи, если вы хотите вставить их в последовательную коллекцию, я бы использовал список (опять же, посмотрите библиотеку коллекций).
Таким образом, вы в конечном итоге с
List<Map<K,V>> listOfTuples
если вам нужно что-то более конкретное (например, вы всегда будете иметь x1, x2, x3 в своем кортеже), подумайте о том, чтобы сделать карты EnumMaps — вы можете ограничить, какие ключи у вас есть, и если вы укажете значение по умолчанию (или какое-либо другое ограничение во время создания), гарантировать, что что-то выйдет.
В Java нет класса пары/n-кортежей по умолчанию; вам придется свернуть свой собственный.
вы можете использовать класс HashSet.
Если вы имеете дело с кортежами фиксированного размера, с фиксированными именами атрибутов, определите свой собственный простой класс данных, а затем определите массив этого класса.
С другой стороны, если вы хотите, чтобы имена атрибутов были гибкими и определялись во время выполнения, используйте структуру Map. В приведенном выше примере кажется, что HashMap‹String,Integer> может выполнить эту работу. Вы можете захотеть обернуть его, чтобы уменьшить его функциональность, и, возможно, также добавить более конкретную функциональность.
Я знаю, что опаздываю на вечеринку, но набор очков должен сработать.
Проверьте здесь, чтобы увидеть документация по баллам.