Octet Class in JavaTuples

A Octet is a Tuple from JavaTuples library that deals with 3 elements. Since this Octet is a generic class, it can hold any type of value in it.

Since Octet is a Tuple, hence it also has all the characterstics of JavaTuples:

  • They are Typesafe
  • They are Immutable
  • They are Iterable
  • They are Serializable
  • They are Comparable (implements Comparable<Tuple>)
  • They implement equals() and hashCode()
  • They also implement toString()

Class Declaration

public final class Octet<A, B, C, D, E, F, G, H> extends Tuple
implements IValue0<A>, IValue1<B>, IValue2<C>, IValue3<D>, IValue4<E>, 
                                            IValue5<F, IValue6<G, IValue7<H>

Class hierarchy

Object
  ↳ org.javatuples.Tuple
      ↳ org.javatuples.Octet<A, B, C, D, E, F, G, H>

Creating Octet Tuple

  • From Constructor:

    Syntax:

    Octet<A, B, C, D, E, F, G, H> octet = 
        new Octet<A, B, C, D, E, F, G, H>
            (value1, value2, value3, value4, value5, value6, value7, value8);
    

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Below is a Java program to create
    // a Octet tuple from Constructor
      
    import java.util.*;
    import org.javatuples.Octet;
      
    class GfG {
        public static void main(String[] args)
        {
            Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
                = Octet.with(Integer.valueOf(1),
                             Integer.valueOf(2),
                             Integer.valueOf(3),
                             Integer.valueOf(4),
                             Integer.valueOf(5),
                             Integer.valueOf(6),
                             Integer.valueOf(7),
                             Integer.valueOf(8));
      
            System.out.println(octet);
        }
    }

    chevron_right

    
    

    Output:

    [1, 2, 3, 4, 5, 6, 7, 8]
    
  • Using with() method: The with() method is a function provided by the JavaTuples library, to instantiate the object with such values.

    Syntax:

    Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
        Octet.with(value1, value2, value3, value4, value5, value6, value7, value8);
    

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Below is a Java program to create
    // a Octet tuple from with() method
      
    import java.util.*;
    import org.javatuples.Octet;
      
    class GfG {
        public static void main(String[] args)
        {
            Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
                = Octet.with(Integer.valueOf(1),
                             Integer.valueOf(2),
                             Integer.valueOf(3),
                             Integer.valueOf(4),
                             Integer.valueOf(5),
                             Integer.valueOf(6),
                             Integer.valueOf(7),
                             Integer.valueOf(8));
      
            System.out.println(octet);
        }
    }

    chevron_right

    
    

    Output:

    [1, 2, 3, 4, 5, 6, 7, 8]
    
  • From other collections: The fromCollection() method is used to create a Tuple from a collection, and fromArray() method is used to create from an array. The collection/array must have the same type as of the Tuple and the number of values in the collection/array must match the Tuple class.

    Syntax:

    Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
        Octet.fromCollection(collectionWith_8_value);
    
    Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
        Octet.fromArray(arrayWith_8_value);
    

    Example:

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // Below is a Java program to create
    // a Octet tuple from Collection
      
    import java.util.*;
    import org.javatuples.Octet;
      
    class GfG {
        public static void main(String[] args)
        {
            // Creating Octet from List
            List<Integer> list = new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            list.add(5);
            list.add(6);
            list.add(7);
            list.add(8);
      
            Octet<Integer, Integer, Integer, Integer, Integer, Integer, Integer> octet
                = Octet.fromCollection(list);
      
            // Creating Octet from Array
            Integer[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 };
      
            Octet<Integer, Integer, Integer, Integer, Integer, Integer, Integer> otherOctet
                = Octet.fromArray(arr);
      
            System.out.println(octet);
            System.out.println(otherOctet);
        }
    }

    chevron_right

    
    

    Output:

    [1, 2, 3, 4, 5, 6, 7, 8]
    [1, 2, 3, 4, 5, 6, 7, 8]
    

Getting Value

The getValueX() method can be used to fetch the value in a Tuple at index X. The indexing in Tuples start with 0. Hence the value at index X represents the value at position X+1.

Syntax:

Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
    new Octet<type1, type2, type3, type4, type5, type6, type7>
        (value1, value2, value3, value4, value5, value6, value7, value8);

type1 val1 = octet.getValue0();

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Below is a Java program to get
// a Octet value
  
import java.util.*;
import org.javatuples.Octet;
  
class GfG {
    public static void main(String[] args)
    {
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
            = Octet.with(Integer.valueOf(1),
                         Integer.valueOf(2),
                         Integer.valueOf(3),
                         Integer.valueOf(4),
                         Integer.valueOf(5),
                         Integer.valueOf(6),
                         Integer.valueOf(7),
                         Integer.valueOf(8));
  
        System.out.println(octet.getValue0());
        System.out.println(octet.getValue2());
    }
}

chevron_right


Output:

1
3

Setting Octet Value

Since the Tuples are immutable, it means that modifying a value at an index is not possible. Hence JavaTuples offer setAtX(value) which creates a copy of the Tuple with a new value at index X, and returns that Tuple.

Syntax:

Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
    new Octet<type1, type2, type3, type4, type5, type6, type7>
      (value1, value2, value3, value4, value5, value6, value7, value8);

Octet<type1, type2, type3, type4, type5, type6, type7> 
    otherOctet = octet.setAtX(value);

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Below is a Java program to set
// a Octet value
  
import java.util.*;
import org.javatuples.Octet;
  
class GfG {
    public static void main(String[] args)
    {
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
            = Octet.with(Integer.valueOf(1),
                         Integer.valueOf(2),
                         Integer.valueOf(3),
                         Integer.valueOf(4),
                         Integer.valueOf(5),
                         Integer.valueOf(6),
                         Integer.valueOf(7),
                         Integer.valueOf(8));
  
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> otherOctet
            = octet.setAt3(40);
  
        System.out.println(otherOctet);
    }
}

chevron_right


Output:

[1, 2, 3, 40, 5, 6, 7, 8]

Adding a value

Adding a value can be done with the help of addAtX() method, where X represent the index at which the value is to be added. This method returns a Tuple of element one more than the called Tuple.

Syntax:

Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
    new Octet<type1, type2, type3, type4, type5, type6, type7>
        (value1, value2, value3, value4, value5, value6, value7, value8);

Octet<type 1, type 2, type 3, type 4, type 5, type 6, type 7> octet = 
    octet.addAtx(value);

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Below is a Java program to add
// a value
  
import java.util.*;
import org.javatuples.Octet;
import org.javatuples.Ennead;
  
class GfG {
    public static void main(String[] args)
    {
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
            = Octet.with(Integer.valueOf(1),
                         Integer.valueOf(2),
                         Integer.valueOf(3),
                         Integer.valueOf(4),
                         Integer.valueOf(5),
                         Integer.valueOf(6),
                         Integer.valueOf(7),
                         Integer.valueOf(8));
  
        Ennead<Integer, Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> ennead
            = octet.addAt8(9);
  
        System.out.println(ennead);
    }
}

chevron_right


Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Searching in Octet

An element can be searched in a tuple with the pre-defined method contains(). It returns a boolean value whether the value is present or not.

Syntax:

Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
    new Octet<type1, type2, type3, type4, type5, type6, type7>
        (value1, value2, value3, value4, value5, value6, value7, value8);

boolean res = octet.contains(value2);

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Below is a Java program to search
// a value in a Octet
  
import java.util.*;
import org.javatuples.Octet;
  
class GfG {
    public static void main(String[] args)
    {
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
            = Octet.with(Integer.valueOf(1),
                         Integer.valueOf(2),
                         Integer.valueOf(3),
                         Integer.valueOf(4),
                         Integer.valueOf(5),
                         Integer.valueOf(6),
                         Integer.valueOf(7),
                         Integer.valueOf(8));
  
        boolean exist = octet.contains(5);
        boolean exist1 = octet.contains(false);
  
        System.out.println(exist);
        System.out.println(exist1);
    }
}

chevron_right


Output:

true
false

Iterating through Octet

Since Octet implement the Iterable<Object> interface. It means that they can be iterated in the same way as collections or arrays.

Syntax:

Octet<type1, type2, type3, type4, type5, type6, type7> octet = 
    new Octet<type1, type2, type3, type4, type5, type6, type7>
            (value1, value2, value3, value4, value5, value6, value7, value8);

for (Object item : octet) {
        ...
}

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Below is a Java program to iterate
// a Octet
  
import java.util.*;
import org.javatuples.Octet;
  
class GfG {
    public static void main(String[] args)
    {
        Octet<Integer, Integer, Integer.Integer, Integer, Integer, Integer, Integer> octet
            = Octet.with(Integer.valueOf(1),
                         Integer.valueOf(2),
                         Integer.valueOf(3),
                         Integer.valueOf(4),
                         Integer.valueOf(5),
                         Integer.valueOf(6),
                         Integer.valueOf(7),
                         Integer.valueOf(8));
  
        for (Object item : octet)
            System.out.println(item);
    }
}

chevron_right


Output:

1
2
3
4
5
6
7
8




My Personal Notes arrow_drop_up

Technical Content Engineer at GeeksForGeeks

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.