1 package Analysis.SSJava;
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.Collection;
8 public class NTuple<T> {
10 private List<T> elements;
12 public NTuple(T... elements) {
13 this.elements = Arrays.asList(elements);
17 this.elements = new ArrayList<T>();
20 public String toString() {
21 return elements.toString();
24 public T at(int index) {
25 return elements.get(index);
29 return elements.size();
32 public void addElement(T newElement) {
33 this.elements.add(newElement);
36 public void addAll(Collection<T> all) {
37 this.elements.addAll(all);
40 public void addAll(NTuple<T> tuple) {
41 for (int i = 0; i < tuple.size(); i++) {
42 elements.add(tuple.at(i));
46 public boolean equals(Object o) {
51 if (o == null || o.getClass() != this.getClass()) {
54 return (((NTuple) o).elements).equals(elements);
57 public int hashCode() {
58 return elements.hashCode();