Cara Membuat Struktur Data Spreadsheet Java

Pada tingkat paling sederhana, Anda dapat membuat struktur data untuk spreadsheet di Java menggunakan larik 2D sederhana. Namun, pendekatan ini meninggalkan banyak hal yang diinginkan. Idealnya, struktur data spreadsheet harus dapat secara efisien mengubah ukuran, menyisipkan, dan menghapus seluruh baris dan kolom, dan operasi ini secara komputasi mahal dalam array Java, mengharuskan Java untuk membangun kembali seluruh struktur data dari awal di belakang layar setiap kali seperti itu. operasi dilakukan.

Sebagai gantinya, Anda harus menggunakan sesuatu yang sedikit lebih canggih: daftar tertaut dari daftar tertaut. Ini akan memungkinkan penyisipan dan penghapusan baris dan kolom serta pengubahan ukuran tabel terjadi lebih cepat. Namun, itu akan datang dengan biaya kinerja yang kecil ketika tiba saatnya untuk mengakses sel-sel tertentu dari spreadsheet secara bergantian.

Langkah 1

Buat file Java baru dan beri nama "SpreadsheetStructure.java." Jika Anda memiliki Lingkungan Pengembangan Terpadu (IDE) favorit, Anda dapat melakukannya dengan mengklik "File," "Kelas Baru." Atau, Anda dapat membuka Windows Notepad dengan mengklik "Mulai," "Semua Program," "Aksesoris," "Notepad" dan menyimpan file dengan nama file itu.

Langkah 2

Buat antarmuka kelas Anda dengan menempelkan yang berikut ke dalam file yang Anda buat di Langkah 1. Langkah selanjutnya akan didedikasikan untuk mengisi kode untuk setiap metode yang ditentukan dalam langkah ini:

Spreadsheet kelas publik {

Daftar Tertaut data = Daftar Tautan baru(); public Spreadsheet() { } public void addRow() { } public void addRow(int index) { } public void removeRow(int index) { } public void removeColumn(int index) { } public void addColumn() { } public void addColumn (int index) { } public void setCell(int x, int y, String newData) { } public int getWidth() { } public int getHeight() { } public String toString() { } /** * Uji kelas, */ public static void main(String[] args) {} 

}

Struktur data dasar akan berupa LinkedList dari baris yang berisi LinkedList kolom. Meskipun array 2D sederhana akan lebih mudah diterapkan, itu juga akan jauh lebih lambat untuk banyak operasi spreadsheet umum, terutama menyisipkan dan menghapus baris.

Langkah 3

Tempel kode berikut di antara tanda kurung metode konstruktor, "Spreadsheet":

Spreadsheet publik() { addRow(); tambahkanKolom(); } 

Ini hanya memastikan bahwa kita mulai dengan setidaknya satu baris dan kolom.

Langkah 4

Tempelkan yang berikut ini untuk mengisi dua metode addRow. Satu tidak mengambil argumen dan secara otomatis menambahkan baris di akhir spreadsheet, sementara yang lain memungkinkan pengguna untuk menentukan tempat menambahkan baris:

public void addRow() { data.addLast(New LinkedList()); for (int x = 0; x < getHeight(); x++) { data.getLast().add(String baru()); } } public void addRow(int index) { data.add(index, LinkedList baru()); for (int x = 0; x < getHeight(); x++) { data.get(index).add(new String()); } } 

Langkah 5

Tempel kode untuk menghapus baris ke file sumber Anda:

public void removeRow(int index) { data.remove(index); } 

Langkah 6

Tempelkan kode untuk dua metode addColumn. Fungsi ini mirip dengan metode addRow--ada dua, satu untuk menambahkan kolom ke akhir lembar dan satu untuk menyisipkan kolom di tengah:

public void addColumn() { untuk (LinkedList l : data) { l.addLast(String baru()); } } public void addColumn(int index) { for (LinkedList l : data) { l.add(index, new String()); } } 

Langkah 7

Tempel kode untuk menghapus kolom:

public void removeColumn(int index) { for (LinkedList l : data) { l.remove(index); } } 

Langkah 8

Tempel kode yang menyetel konten sel tertentu ke string data:

public void setCell(int x, int y, String newData) { data.get(x).set(y, newData); } 

Langkah 9

Isi metode untuk mendapatkan lebar dan tinggi spreadsheet:

public int getWidth() { kembalikan data.getFirst().size(); } public int getHeight() { kembalikan data.size(); } 

Langkah 10

Menerapkan metode toString. Ini akan mengembalikan tampilan string yang diformat, dalam tabel baris dan kolom, data dalam spreadsheet:

public String toString() { String temp = ""; for (LinkedList l : data) { for (Object o : l) { String s = (String) o; if (s.equals("")) s = "-kosong-"; suhu += s + " "; } suhu += "\n"; } kembalikan suhu; } 

Tempel metode utama berikut yang menempatkan struktur data spreadsheet melalui langkahnya dan memastikan semuanya berfungsi seperti yang diharapkan:

public static void main(String[] args) { Spreadsheet sheet = new Spreadsheet(); System.out.println(sheet.toString()); System.out.print(sheet.getWidth()); System.out.print("x"); System.out.println(sheet.getHeight()); sheet.addRow(); System.out.print(sheet.getWidth()); System.out.print("x"); System.out.println(sheet.getHeight()); sheet.setCell(0,0,"1"); sheet.setCell(0,1,"2"); sheet.setCell(1,0,"3"); sheet.setCell(1,1,"4"); System.out.println(sheet.toString()); sheet.addColumn(1); sheet.setCell(1,0, "TEMP"); sheet.setCell(1,1, "TEMP"); System.out.println(sheet.toString()); sheet.removeRow(1); System.out.println(sheet.toString()); sheet.removeColumn(1); System.out.println(sheet.toString()); }