Advertisement
binibiningtinamoran

Trio

May 27th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Trio<T> {
  4.     private T item1, item2, item3;
  5.  
  6.     public Trio(T newItem1, T newItem2, T newItem3){
  7.         this.item1 = newItem1;
  8.         this.item2 = newItem2;
  9.         this.item3 = newItem3;
  10.     }
  11.  
  12.     public Trio(T newItem){
  13.         this(newItem,newItem,newItem);
  14.     }
  15.  
  16.     public void setItem1(T newItem){
  17.         this.item1 = newItem;
  18.     }
  19.  
  20.     public void setItem2(T newItem){
  21.         this.item2 = newItem;
  22.     }
  23.  
  24.     public void setItem3(T newItem){
  25.         this.item3 = newItem;
  26.     }
  27.  
  28.     public T getItem1 (){
  29.         return item1;
  30.     }
  31.  
  32.     public T getItem2 (){
  33.         return item2;
  34.     }
  35.  
  36.     public T getItem3 (){
  37.         return item3;
  38.     }
  39.  
  40.  
  41.     @Override
  42.     public String toString() {
  43.         return item1.toString() + "\t" + item2.toString() + "\t" + item3.toString();
  44.     }
  45.  
  46.     /* public int contains(Object item){
  47.         int count = 0;
  48.         if (item.equals(item1)){
  49.             count++;
  50.         }
  51.         if (item.equals(item2)){
  52.             count++;
  53.         }
  54.         if (item.equals(item3)){
  55.             count++;
  56.         }
  57.         return count;
  58.     } */
  59.  
  60.     public int contains(Object item) {
  61.         int count = 0;
  62.         ArrayList<T> itemArray = new ArrayList<>();
  63.         itemArray.add(0, this.item1);
  64.         itemArray.add(1, this.item2);
  65.         itemArray.add(2, this.item3);
  66.         for (T itemIterator : itemArray) {
  67.             if (itemIterator.equals(item)) {
  68.                 count++;
  69.             }
  70.         }
  71.         return count;
  72.     }
  73.  
  74.     public boolean hasDuplicates(){
  75.         return this.contains(this.item1) > 1 || this.contains(this.item2) > 1;
  76.     }
  77.  
  78.     @Override
  79.     public boolean equals(Object other){
  80.         if (other instanceof Trio<?>) {
  81.             Trio<?> otherTrio = (Trio<?>) other;
  82.  
  83.             return this.contains(item1) == otherTrio.contains(item1)
  84.                     && this.contains(item2) == otherTrio.contains(item2)
  85.                     && this.contains(item3) == otherTrio.contains(item3);
  86.         }
  87.         else {
  88.             return false;
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement