Jenis Pengelompokan Collectin ini merupakan pengelompokan satu dimensi. Berdasarkan teknik pengelompokannya terbagi menjadi tiga kelompok yaitu set, list, dan queue. Semua class dalam kelompok collection ini merupakan implementasi dari interface yang sama, maka pada dasarnya cara penggunan class ini adalah sama. Yang membedakannya hanyalah kapan kita harus menggunakannya karena hal ini sangat terkait dengan kebutuhan.
a. Set merupakan pengelompokan mengikuti model himpunan dimana setiap anggota-nya harus unik. Urutan maupun letak dari anggotanya tidaklah penting, hanya keberadaan anggotanya saja yang penting.
Contoh dalam Program:
import java.util.*;
public class setCollection {
public static void main(String[] args) {
Set<String> set1 = new HashSet<String>();
Collections.addAll(set1, "A B C D E ".split(" "));
set1.add("M");
System.out.println("B: " + set1.contains("B"));//ada H
System.out.println("H: " + set1.contains("H"));//ada N
Set<String> set2 = new HashSet<String>();
Collections.addAll(set2, "E F G H".split(" "));
//Apakah huruf2 di set2 ada di set 1 ?? -> true
System.out.println("set2 in set1: " + set1.containsAll(set2));
set1.remove("H");
System.out.println("set1: " + set1);
System.out.println("set2 in set1: " + set1.containsAll(set2));
set1.removeAll(set2);
System.out.println("set2 dihapus dari set1: " + set1);
Collections.addAll(set1, "X Y Z".split(" "));
System.out.println("‘X Y Z’ ditambahkan ke set1: " + set1);
}
}
b. List merupakan pengelompokan berdasarkan urutan seperti layaknya array, karena itu ia memiliki posisi awal dan juga posisi akhir. Dengan list kita bisa menyimpan suatu objek pada awal atau akhir list, menyisipkan, mengakses serta menghapus isi list pada posisi index tertentu dimana semua proses ini selalu didasarkan pada urutannya. Selain itu isi list tidak harus unik. Beberapa Class java yang mengimplementasi kelas ini antara lain : Vector, Stack, LinkedList, dan ArrayList.
Contoh dalam Program :
Vector
import java.util.Scanner;
import java.util.Vector;
public class VektorJava{
public static void main(String[] args) {
String data = "";
Vector<String> V = new Vector<String>();
Scanner input = new Scanner(System.in);
for(int i=0;i<=3;i++){
System.out.print("Masukan Data "+i+": ");
data = input.next();
V.add(data);
}
System.out.println(V);
String nama = (String) V.get(0);
System.out.println(nama);
}
}
Stack
import java.io.*;
import java.util.*;
public class StackImplement {
Stack<Integer> stack = new Stack<Integer>();
String str;
int num, n;
public static void main(String[] args) {
StackImplement q = new StackImplement();
}
public StackImplement() {
try {
BufferedReader bf = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Banyak Data : ");
str = bf.readLine();
num = Integer.parseInt(str);
for (int i = 1; i <= num; i++) {
System.out.print("Masukan Elemen " + i + " : ");
str = bf.readLine();
n = Integer.parseInt(str);
stack.push(n);
}
} catch (IOException e) {
}
System.out.println("Stack : ");
while (!stack.empty()) {
System.out.print(stack.pop() + " ");
}
System.out.println();
}
}
LinkedList
import java.util.LinkedList;
public class LinkListCollection {
public static void main(String[] args) {
LinkedList<String> A = new LinkedList<String>();
String[] nama = {"David","Alfa","Benny"};
//Tambah data data diambil dari array nama;
for(int nList = 0;nList<nama.length;nList++){
A.add(nama[nList]);
}
//Tampil Data
System.out.println("Data Asli : ");
for(int nList = 0;nList<nama.length;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
System.out.println("\nTambah data di Index ke-3 : ");
A.add(3, "Danni");
for(int nList = 0;nList<=nama.length;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
System.out.println("\nDelete data di Index ke-2 : ");
A.remove(2);
for(int nList = 0;nList<nama.length;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
System.out.println("\nTambah data di Awal list : ");
A.addFirst("Marcelo");
for(int nList = 0;nList<=nama.length;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
System.out.println("\nTambah data di Akhir list : ");
A.addLast("Ferdi");
for(int nList = 0;nList<=nama.length+1;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
System.out.println("\nTambah data di Akhir list : ");
A.remove(4);
for(int nList = 0;nList<=nama.length;nList++){
System.out.println("Indeks "+nList+": "+A.get(nList));
}
}
}
ArrayList
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListCollection {
public static void main(String[] args) {
String str = "";
ArrayList<String> senerai = new ArrayList<String>();
Scanner scan = new Scanner(System.in);
while (true) {
try {
System.out.println("\n1. Tambah Data");
System.out.println("2. Lihat Data");
System.out.println("3. Delete Data");
System.out.println("4. Exit");
System.out.print("Masukan pilihan : ");
int pilihan = scan.nextInt();
switch (pilihan) {
case 1:
int jmlDt = 0;
System.out.print("Tambah data : ");
str = scan.next();
senerai.add(str);
jmlDt++;
break;
case 2:
System.out.println("\nIsi senerai sekarang : ");
System.out.println("Jumlah Element : " + senerai.size());
for (int i = 0; i < senerai.size(); i++) {
System.out.println("Index " + i + ". " + senerai.get(i));
}
System.out.println("");
break;
case 3:
int indeks;
try {
System.out.print("Masukan Index list yang akan di hapus: ");
indeks = scan.nextInt();
senerai.remove(indeks);
System.out.println(">remove data sukses<");
} catch (IndexOutOfBoundsException a) {
System.out.println("Indeks Array melebihi batas");
}
break;
case 4:
System.out.println("Terima kasih");
System.exit(0);
default:
System.out.println("Inputan Tidak tersedia \n");
}
} catch (Exception e) {
System.err.println("Salah Input");
System.exit(1);
}
}
}
}
c. Queue merupakan model pengelompokan berdasarkan metode antrian suatu prioritas tertentu(contoh FIFO-First In First Out). Beberapa Class java yang mengimplementasi interface Queue ini antara lain PriorityQueue dan LinkedList.
import java.io.*;
import java.util.*;
public class QueueJava{
String str;
int num;
public static void main(String[] args){
QueueJava q = new QueueJava();
}
public QueueJava(){
try{
LinkedList<Integer> list = new LinkedList<Integer>();
BufferedReader bf = new BufferedReader(
new InputStreamReader(System.in));
System.out.print("Banyak Data : ");
str = bf.readLine();
if((num = Integer.parseInt(str)) == 0){
System.out.println("Anda menekan angka nol.");
System.exit(0);
}
else{
for(int i = 0; i < num; i++){
System.out.print("Masukan Elemen "+i+" : ");
str = bf.readLine();
int n = Integer.parseInt(str);
list.add(n);
}
}
System.out.println("\nElement Pertama : "
+ list.removeFirst());
System.out.println("Element Terakhir : "
+ list.removeLast());
System.out.println("Element Tengah : ");
while(!list.isEmpty()){
System.out.print(list.remove() + " ");
}
System.out.println("");
}
catch(Exception e){
System.out.println(e.getMessage()
+ " adalah String.");
System.exit(0);
}
}
}