fork download
  1. import java.util.ArrayList;
  2. import java.util.LinkedHashSet;
  3.  
  4. /**
  5.  * The Sequence class represents a collection of integers stored in an ArrayList.
  6.  * It provides methods to add numbers, remove duplicate values, and display the sequence.
  7.  */
  8. class Sequence {
  9. private ArrayList<Integer> numbers; // List to store the sequence of numbers
  10.  
  11. /**
  12.   * Constructor to initialize an empty sequence.
  13.   */
  14. public Sequence() {
  15. numbers = new ArrayList<>();
  16. }
  17.  
  18. /**
  19.   * Adds a number to the sequence.
  20.   *
  21.   * @param num The integer to be added to the sequence.
  22.   */
  23. public void add(int num) {
  24. numbers.add(num);
  25. }
  26.  
  27. /**
  28.   * Removes duplicate values from the sequence while keeping only the first occurrence.
  29.   * The original sequence is modified in place.
  30.   *
  31.   * This method does not return anything, but it updates the sequence.
  32.   */
  33. public void removeDuplicates() {
  34. // Using LinkedHashSet to remove duplicates while maintaining insertion order
  35. LinkedHashSet<Integer> uniqueNumbers = new LinkedHashSet<>(numbers);
  36. numbers.clear(); // Clear the original list
  37. numbers.addAll(uniqueNumbers); // Add back the unique numbers
  38. }
  39.  
  40. /**
  41.   * Prints the sequence to the console.
  42.   * This method does not return anything.
  43.   */
  44. public void printSequence() {
  45. System.out.println(numbers);
  46. }
  47. }
  48.  
  49. /**
  50.  * The SequenceTester class tests the functionality of the Sequence class.
  51.  * It creates multiple sequences, adds numbers, removes duplicates, and displays results.
  52.  */
  53. class SequenceTester {
  54. public static void main(String[] args) {
  55. // Creating first sequence
  56. Sequence seq1 = new Sequence();
  57. seq1.add(1);
  58. seq1.add(4);
  59. seq1.add(9);
  60. seq1.add(16);
  61. seq1.add(9);
  62. seq1.add(7);
  63. seq1.add(4);
  64. seq1.add(9);
  65. seq1.add(11);
  66.  
  67. // Display original sequence
  68. System.out.println("Original Sequence 1:");
  69. seq1.printSequence();
  70.  
  71. // Remove duplicates and display updated sequence
  72. seq1.removeDuplicates();
  73. System.out.println("After removing duplicates:");
  74. seq1.printSequence();
  75.  
  76. // Creating second sequence
  77. Sequence seq2 = new Sequence();
  78. seq2.add(3);
  79. seq2.add(3);
  80. seq2.add(3);
  81. seq2.add(5);
  82. seq2.add(7);
  83. seq2.add(7);
  84.  
  85. System.out.println("\nOriginal Sequence 2:");
  86. seq2.printSequence();
  87.  
  88. seq2.removeDuplicates();
  89. System.out.println("After removing duplicates:");
  90. seq2.printSequence();
  91.  
  92. // Creating third sequence
  93. Sequence seq3 = new Sequence();
  94. seq3.add(10);
  95. seq3.add(20);
  96. seq3.add(30);
  97. seq3.add(20);
  98. seq3.add(10);
  99.  
  100. System.out.println("\nOriginal Sequence 3:");
  101. seq3.printSequence();
  102.  
  103. seq3.removeDuplicates();
  104. System.out.println("After removing duplicates:");
  105. seq3.printSequence();
  106. }
  107. }
Success #stdin #stdout 0.1s 52744KB
stdin
Standard input is empty
stdout
Original Sequence 1:
[1, 4, 9, 16, 9, 7, 4, 9, 11]
After removing duplicates:
[1, 4, 9, 16, 7, 11]

Original Sequence 2:
[3, 3, 3, 5, 7, 7]
After removing duplicates:
[3, 5, 7]

Original Sequence 3:
[10, 20, 30, 20, 10]
After removing duplicates:
[10, 20, 30]