Thứ Ba, 30 tháng 6, 2015

Kỹ thuật Phishing - Tấn công vào yếu tố thị giác
Kỹ thuật Phishing - Tấn công vào yếu tố thị giác

Mới đây, Paul Moore - chuyên gia bảo mật đã từng "qua mặt" phần mở rộng Google Password Alert đã chia sẻ 2 liên kết mà nếu chỉ nhìn qua có lẽ bạn sẽ nghĩ đều là cùng 1 trang web. Nhưng thực tế thì chúng trỏ tới 2 trang web hoàn toàn khác nhau!


Read More
Tạo phiên bản Teamviewer với giao diện của riêng bạn
Tạo phiên bản Teamviewer với giao diện của riêng bạn

Teamviewer là một phần mềm điều khiển máy tính từ xa rất nổi tiếng hiện nay với đặc điểm đơn giản và dễ sử dụng. Bạn chỉ cần mở lên, đọc ID và mật khẩu cho đối tác là có thể kết nối ngay lập tức, và ngược lại.



Read More


GIỚI THIỆU

Chào các bạn!

Hôm nay mình xin bắt đầu chuỗi bài hướng dẫn học lập trình Winform C# cơ bản kèm ví dụ cụ thể. Bài đầu tiên này mình xin phép giới thiệu với các bạn những thứ cơ bản nhất về Winform C#, và nó khác gì so với lập trình trên Console.
Chúng ta sẽ tìm hiểu 3 đặc điểm hướng đối tượng của nó





THUỘC TÍNH CỦA ĐỐI TƯỢNG

       Ở ngoài thực tế, thuộc tính là những đặc điểm của sự vật.
       Ví dụ: cô kia chân: dài, dáng: cao, da: trắng. Anh kia mũi: thấp, tóc: ngắn...v...v...
       Đối với Console App, thì thuộc tính là các biến kiểu private, nằm trong một Class và chúng ta hay dùng phương thức get - set để lấy giá trị cho nó. 
       Còn trong lập trình Winform C# thì thuộc tính là những đặc điểm - tính năng bên ngoài và bên trong của một đối tượng (Form, Control, Container,...).
       Dưới đây là bảng các thuộc tính giống nhau của các Control trong C#
    Thuộc tính thường dùng trong C# - Winform
       
        Các bạn có thể thay đổi thuộc tính ở khung Properties trong lúc thiết kế Form, và cũng có thể thay đổi thuộc tính bằng code.

    Ví dụ: một textBox cơ bản vừa được kéo ra từ Toolbox. Các bạn thực hiện các dòng code sau ở hàm dựng của Form (hàm này sẽ chạy đầu tiên khi Form load lên)
    public YourForm()
    {
    InitializeComponent();

    //Code thay đổi thuộc tính của textBox1
    textBox1.BackColor = Color.LightYellow;
    textBox1.Text = "Lập trình cuộc sống";
    textBox1.TextAlign = HorizontalAlignment.Center;
    textBox1.ForeColor = Color.Blue;

    //Code thay đổi thuộc tính button1
    button1.Text = "IceTea Việt";
    button1.BackColor = Color.LightGreen;
    button1.FlatStyle = FlatStyle.Flat;
    button1.Enabled = false;
    }

    Kết quả sẽ là:


    PHƯƠNG THỨC CỦA ĐỐI TƯỢNG

         Trong lập trình trên Console ta hay gọi một phương thức là "hàm". Nhưng nếu lập trình C# hướng đối tượng thì hàm đặt trong class được gọi là phương thức. Mỗi class dù là class thường hay là Form, hay bất cứ Control nào khác đều có phương thức riêng cho mình
         Chúng ta gọi (call) đến phương thức của nó, giống như là ra lệnh cho nó phải làm một hành động gì đó vậy. Cũng giông như chúng ta khi còn nhỏ ai cũng có phương thức là Học(), Ăn(), QuétNhà(),...vậy :D
      Phương thức thường dùng trong C# - Winform


      SỰ KIỆN CỦA CÁC ĐỐI TƯỢNG

           Sự kiện là gì?
           Ta cứ tưởng tượng như chúng ta nhảy, thì đó là sự kiện ghi nhận hành động nhảy. Con chim hót thì sự kiện là chim hót.
           Vậy trong winform C# theo đúng nghĩa đen nó, sự kiện là một hành động gì đó vừa được xảy ra. Ví dụ người dùng ấn vào một nút nào đó, thì đó là sự kiện Click, ấn phím nào đó thì là sự kiên KeyPress.

           Làm sao máy tính nhận biết được sự kiện?
           Nếu ở ngoài đời chúng ta nhìn bằng mắt, nghe bằng tai biết được sự kiện hành động đó đang diễn ra thì trong C# hỗ trợ cho chúng ta một bộ lắng nghe sự kiện EventHandler. Các bạn cứ hiểu đơn giản là nó sẽ dựa trên cơ chế ngắt của vi xử lý gửi và nhận các tín hiệu và trả về các phương thức cho bạn. Nếu tìm hiểu sâu ta sẽ đụng tới Delegate - thứ mà mình vẫn còn đang mơ hồ >.< Nếu sau này có điều kiện mình sẽ viết một bài sâu hơn để hướng dẫn các bạn với Event, Delegate và cách Custom sự kiện.
        Các sự kiện thường dùng
            
            Vậy thì cần sự kiện để làm gì?
            Các bạn cứ tưởng tượng sự kiện như là một câu lệnh điều kiện if, nếu xảy ra sự kiện gì đó - thì ta sẽ xử lý để làm việc gì đó. Ví dụ như nếu Click chuột vào button đăng nhập trong game, thì nó sẽ xử lý kiểm tra tài khoản và mật khẩu, và sẽ xuất ra thông báo đăng nhập thành công chẳng hạn... Cứ lấy ví dụ bằng game cho dễ hình dung :D

            Sự kiện được khởi chạy khi nào?
            - Người dùng có thể khởi chạy các event bằng cách tương tác với chương trình của bạn. Ví dụ: Việc nhấp một button sẽ khởi chạy event Click của button
            - Các control có thể tự khởi chạy event riêng của mình. Ví dụ: control Timer sẽ kích hoạt event Tick của nó vào các khoảng thời gian đều đặn
            - Hệ điều hành (bất kỳ phiên bản nào của Windows) có thể khởi chạy các event
            - Bạn có thể khởi chạy các event bằng cách gọi chúng giống như gọi một phương thức 

            Làm cách nào để thêm một sự kiện cho Form hoặc control?
            Các bạn có thể thêm sự kiện bằng code, hoặc click đúp vào control muốn thêm để thêm sự kiện thường dùng nhất của nó, hoặc đúp chuột vào tên sự kiện cần thêm  trong khung sự kiện của ô Properties khi đang thiết kế form. Khi đó Visual Studio sẽ tự động generate code cho sự kiện đó vào <YourForm>.Designer.cs và gọi hàm đó vào class <YourForm> để các bạn thiết lập xử lý sự kiện
        Thêm sự kiện bằng khung Properties

        Vd: khi bạn đúp chuột vào sự kiện Click của button1 thì VS sẽ tự động tạo những đoạn code sau

        //
        // Trong Yourform.Designer.cs

        this.button1.Click += new System.EventHandler(this.button1_Click);

        // Trong Class của YourForm nó sẽ gọi hàm để định nghĩa và xử lý cho sự kiện click trên

        private void button1_Click(object sender, EventArgs e)
        {
        //Các bạn sẽ cần gõ code xử lý sự kiện ở đây
        }

        Các bạn có thể thêm/xóa sự kiện bằng tay theo cú pháp
        //

        //Thêm vào Yourform.Designer.cs hay trong hàm dựng của Form đều được
        this.Control.Sựkiện += new System.EventHandler(this.tên hàm sự kiện);


        //và gọi hàm để định nghĩa cho sự kiện
        private void tên hàm sự kiện(object sender, XEventArgs e)
        {
        //Trong đó X có thế là Mouse, hoặc Graphics, hoặc có thể bỏ trống tùy loại sự kiện
        }


        //Xóa event vừa tạo
        this.Control.Sựkiện -= new System.EventHandler(this.tên hàm sự kiện);

        //

        Hoặc các bạn cũng có thể gõ this.<control>.<Sự kiện> += rồi tab 2 lần để VS tự động generate sự kiện và hàm cho bạn nếu bạn ko biết rõ nó là EventArgs hay MouseEventArgs,.... Rất dễ đúng không các bạn :D

        Cuối cùng mình xin gửi đến các bạn các đoạn code mẫu sau để đoán kết quả nó sau khi chạy nhé :D

        //Trong Form.Designer.cs
        private void InitializeComponent()
        {
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.button1 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        //
        // textBox1
        //
        this.textBox1.Location = new System.Drawing.Point(156, 223);
        this.textBox1.Name = "textBox1";
        this.textBox1.Size = new System.Drawing.Size(183, 20);
        this.textBox1.TabIndex = 1;
        this.textBox1.BackColor = Color.LightYellow;
        this.textBox1.Text = "Lập trình cuộc sống";
        this.textBox1.TextAlign = HorizontalAlignment.Center;
        this.textBox1.Visible = false;
        //
        // button1
        //
        this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
        this.button1.Location = new System.Drawing.Point(210, 184);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(75, 23);
        this.button1.TabIndex = 3;
        this.button1.Text = "TestButton";
        this.button1.UseVisualStyleBackColor = true;
        this.button1.Click += new System.EventHandler(this.button1_Click);
        //
        // YourForm
        //
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(625, 467);
        this.Controls.Add(this.button1);
        this.Controls.Add(this.textBox1);
        this.Name = "YourForm";
        this.Text = "Form1";
        this.ResumeLayout(false);
        this.PerformLayout();
        }

        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.Button button1;


        //Trong Form Class của Form.cs
        private void button1_Click(object sender, EventArgs e)
        {
        MessageBox.Show("Cùng học MessageBox với IceTea Việt", "Thông báo");
        }

        Chúc các bạn học tốt, chào các bạn và hẹn gặp lại!



        Chào các bạn!

        Mình biết nhiều bạn muốn học cho mình một ngôn ngữ mới và hiện đại như C#, nhưng không biết phải bắt đầu từ đâu. Nhiều bạn search tài liệu trên mạng, search video tutorial về lưu lại rồi lại lẩn quẩn không biết học cách nào.



        Theo mình biết thì C# hay nói rộng hơn là .NET. Hiện tại có 5 mô hình lớn đang phát triển là: 
        • WPF: Dùng làm ứng dụng trên Windows, tận dụng các thư viện đa dạng của .NET
        •  Webform: Cái này được phát triển đầu tiên, dùng làm web và ứng dụng web, nền tảng nhất của .NET framework.
        •  MVC: phát triển sau webform, là một pattern nhiều người sử dụng, tận dụng được điểm mạnh và là bước tiến cao hơn.
        •  Webmatrix: mô hình mới nhất của .NET
        • Windows Phone: Lập trình các ứng dụng cho di động chạy Winphone OS 

        Bạn hãy chọn 1 trong 5 hệ thống này và học từ căn bản lên, mỗi cái điều có ưu thế riêng!

        Lựa chọn hướng đi thế nào cho đúng đắn

           Nói lý thuyết là vậy, đối với các bạn mới học thì đọc những khái niệm trên sẽ rất mơ hồ.  
           Theo mình thì đầu tiên bạn nên học những thứ căn bản trước, là các kiểu dữ liệu,biến hằng mảng trên Console.... 
           Sau khi nắm vững những thứ căn bản rồi thì bạn mới đi sâu vào một vài ứng dụng mà bạn yêu thích như Web, Windows form application, WPF.
          Lưu ý: Vì C# là ngôn ngữ hướng đối tượng nên các bạn sẽ gặp khó khăn rất nhiều trong giai đoạn mới bắt đầu, một số bạn sẽ dễ nản và bỏ cuộc, tuy nhiên cần xác định rõ mục tiêu và cố gằng hoàn thành nó.

        Đừng quên lý do bạn bắt đầu

        MẸO: 
        Mình khuyên các bạn nên tạo cho mình một file LuuY_C#.txt để lưu trữ lại những lỗi/trường hợp mắc phải và kèm theo solution cho nó (solution có thể search trên Stack Overflowhoặc đăng lên một số diễn đàn để hỏi). 
        Và hãy đọc lại file LuuY_C#.txt một lần sau mỗi project, thì sau này bạn sẽ có thể nhớ rõ lỗi và bản chất nó hơn.

        Và quan trọng nhất mình cũng có ý tưởng làm loạt bài "tutorial with example" hướng dẫn cụ thể từng đối tượng trong C# Winform, học C# qua đồ án/ví dụ cụ thể để tránh các bạn sẽ bị chán nản với khung màn hình console chán ngắt :D và xem được ngay thành quả học tập của mình qua các project từ dễ đến khó. 


        Học theo project thực tế

        Bởi vì đọc lý thuyết sẽ không hiểu được, học lập trình cần bắt tay vào làm rồi mọi vấn đề sẽ hiện ra ngay


        TÀI LIỆU
        Mình có sưu tập được một số tài liệu hay về C# Winform chia sẻ đến các bạn :D, ai cần tài liệu về các hướng đi khác thì comment mình sẽ upload ngay cho 

        Mình sẽ viết bài hướng dẫn đầu tiên trong thời gian sớm nhất. Chúc các bạn học tốt! 


        Thứ Hai, 22 tháng 6, 2015

        [UDF] GUI Icon Animation - Tạo hiệu ứng icon giống Exe2aut
        [UDF] GUI Icon Animation

        GUI Icon Animation là gì?

        Đây là một UDF (User Defined Function) dành cho AutoIt giúp tạo hiệu ứng Icon động cho GUI giống như ứng dụng Exe2Aut.

        Read More

        Thứ Năm, 18 tháng 6, 2015

        Cách cập nhật tất cả Python Package với Pip
        Cách cập nhật tất cả Python Package với Pip

        Pip là gì?

        Pip là một trình quản lý gói (package manager), thư viện cho Python. Giống như Composer cho PHP hay Bower cho Javascript.


        Read More

        Thứ Tư, 17 tháng 6, 2015

        Chủ Nhật, 14 tháng 6, 2015

        Một cách đơn giản để làm sinh động bài viết của mình và làm cho chúng hấp dẫn hơn là thêm hiệu ứng "bong bóng - Bubbles". Bạn có thể sử dụng các bong bóng để trình bày lời khuyên ngắn, đưa ra một định nghĩa hoặc để thêm thông tin về một vấn đề nào đó mà bạn muốn chọn làm điểm nhấn.

        Các bong bóng là trong vô hình. Chúng chỉ xuất hiện khi người đọc rê chuột của mình qua một từ hoặc một văn bản mà bạn muốn trình bày thêm thông tin. Nói về lý thuyết thì có vẻ sẽ làm cho bạn khó hiểu được. Và bạn sẽ dễ hiểu hơn về CSS Bubbles với những demo và hướng dẫn mà ITViet360 sẽ trình bày dưới đây.
        Làm thế nào để thêm CSS Bubbles cho blogspot, Web
        chi tiết

        Thứ Sáu, 12 tháng 6, 2015

        Khi mới sử dụng máy MAC thì bản thân nhiều người không quen khi mới tiếp xúc với lại HĐH MAC OS. Ngay cả mình cũng vậy, và biện pháp tốt nhất để không ảnh hưởng tới kết quả công việc, học tập đó là mình cài cả 2 hệ điều hành: Windows và Mac OS trên cùng máy.
        Không lâu sau đó, bạn đã dùng quen với MAC OS và nhận thấy nhiều điều thú vị và mọi chức năng đều có bên MAC nên mình đã chọn MAC OS. Vậy làm thế nào để xoá bỏ hđh Windows đã cài trước đó. Bài viết này IT Việt 360 sẽ hướng dẫn bạn thực hiện việc đó.
        Để xoá bỏ một bộ Windows đã cài lên máy MAC để cài lại bộ khác hoặc không dùng Windows nữa ta chỉ cần vào OSX vào Applications vào Ultility chọn BootCamp Assistant và chọn "Restore startup disk to single volume". Sau khi làm bước này thì sẽ không còn một dấu hiệu nào của Windows trên MAC, bạn nhớ sao lưu các tài liệu, ứng dụng quan trọng lại trước khi làm bước này.
        Xoá bỏ HĐH Windows đã cài lên máy MacBook
        chi tiết
        WordPress SEO by Yoast - DOM XSS Vulderability
        WordPress SEO by Yoast - DOM XSS Vulderability
        Một lỗ hổng DOM XSS trong plugin WordPress SEO by Yoast đã được báo cáo 2 năm trước bởi một thành viên có tên tài khoản "badconker". Tác giả của plugin nói rằng nó đã được vá nhưng nhà bảo mật Charles Neill phát hiện ra dường như lỗ hổng đã xuất hiện trở lại. Nếu bạn đang sử dụng plugin này, tôi khuyên bạn nên cập nhật ngay lên phiên bản mới nhất (2.2.1).
        Read More

        Thứ Năm, 11 tháng 6, 2015

        Các Collection (Set, List, Map, ArrayList, Vector, HashTable, HashSet, HashMap) được đặt trong gói java.util là một kiến trúc hợp nhất để biểu diễn và thao tác trên các nhóm đối tượng.
        Lợi ích của Collection Framework:
        • Giảm bớt thời gian lập trình.
        • Tăng cường hiệu năng chương trình.
        • Dễ mở rộng các collection mới.
        • Khuyến khích sử dụng lại mã của chương trình.
        Các giao diện (interfaces) và các các lớp sưu tập (Collection class)
        Giao diện List định nghĩa một sưu tập các phần tử Object có thể dẫn hướng.
        Giao diện Set định nghĩa một sưu tập không có phần tử trùng lặp.
        Giao diện Map định nghĩa một sưu tập các cặp khóa-giá trị.
        Giao diện (interface) ==> Triển khai thực hiện (implementations).
        List ==>  ArrayList, Vector.
        Set ==> HashSet, TreeSet.
        Map ==> HashMap.
        Các thao tác trên Collection.
        Các phương thức để mô tả kích thước của collection (như size() và isEmpty()).
        Các phương thức để mô tả nội dung của collection (như contains() và containsAll()).
        Các phương thức để hỗ trợ thao tác về nội dung của collection (như add(), remove() và clear()).
        Các phương thức để cho phép bạn chuyển đổi một collection thành một mảng (như toArray()).
        Một phương thức để cho phép bạn nhận được một trình vòng lặp (iterator) trên mảng các phần tử (iterator()).
        1/ List
        Giao diện List là phần mở rộng của Collection Interface. Nó định nghĩa tập hợp các dữ liệu được sắp xếp và cho phép các phần tử trùng lắp được thêm vào.
        Giao diện List sử dụng index cho việc sắp xếp các phần tử trong khi lưu trữ nó trong danh sách (list). List cung cấp cho chúng ta một vài phương thức sau để truy cập vào các phần tử:
        add (Object o): thêm phần tử vào List.
        add (int index, Object o): thêm phần tử vào và chỉ rõ vị trí trong List
        addAll (int index, Collection c):  thêm một toàn bộ phần tử của một collection và chỉ rõ vị trí bắt đầu.
        get (int index): lấy phần tử tại vị trí đã được chỉ rõ.
        set (int index, Object o): thay thế phần tử trong list được chỉ rõ vị trí.
        remove (int index): xóa phần tử trong list tại vị trí index.
        remove (Object o): xóa phần tử trong list được chỉ rõ tên.
        subList ( int start, int end): phương thức này trả về kiểu List chứa tất cả các phần tử mà nó lấy được bắt đầu từ start và kết thúc tại end. Tôi thường dùng phương thức này để tạo ra List mới…
        Ví dụ:
        public static void main(String[] args) {
        // TODO code application logic here
        List list = new ArrayList();
        //Thêm các phần tử vào list
        list.add(“A”);
        list.add(“B”);
        list.add(“C”);
        list.add(7);
        list.add(8);
        list.add(9);
        System.out.println(list); // in ra [A, B, C, 7, 8, 9]
        // thêm phần tử O tại ví trị 0.
        list.add(0“O”);
        System.out.println(list); // in ra [O, A, B, C, 7, 8, 9]
        // thêm M vào vị trí O
        list.set(0“M”);
        System.out.println(list); // in ra [M, A, B, C, 7, 8, 9].
        System.out.println(list.get(1)); // in ra phần tử A
        // xóa phần tử M tại vị trí 0.
        list.remove(0);
        System.out.println(list); // in ra [A, B, C, 7, 8, 9].
        }
        2/ ArrayList
        Việc sử dụng mảng (array) có một vài nhược điểm mà các lập trình viên thường gặp phải như sau:
        Nếu khai báo kích thước mảng quá nhỏ thì sẽ dẫn đến thiếu bộ nhớ khi lưu trữ.
        Nếu khai báo lớn thì thừa bộ nhớ (quá lãng phí).
        Các phần tử trong mảng lại có cùng kiểu dữ liệu.
        ArrayList đã tránh những nhược điểm này. ArrayList là một mảng động. Nếu các phần tử thêm vào vượt qua kích cỡ mảng, thì mảng sẽ tự động tăng kích cỡ. Từ Java 5.0 trở đi ArrayList lag một lớp generic ArrayList <T>.Vậy thì khi nào chúng ta dùng nó??? ArrayList nên dùng khi có nhu cầu truy cập các phần từ của list theo thứ tự ngẫu nhiên. Ví dụ truy cập phần từ thứ 1, rồi đến thứ 5, rồi quay lại thứ 3.
        Các phương thức khởi tạo của lớp này:
        ArrayList()
        ArrayList(Collection c)
        ArrayList(int initialCapacity)
        Một vài phương thức cơ bản: ArrayList thừa kế tất cả các phương thức của giao diện List.
        add( E object ) thêm phần tử vào vị trí cuối cùng của list.
        trimToSize() cắt kích thước của ArrayList về kích thước hiện tại của ArrayList.
        clear() xóa toàn bộ phần tử trong list.
        contain() trả về giá trị true nếu list có chứa phần tử được chỉ rõ.
        size() trả về số lượng phần tử trong list.
        ……………………………………………………………………………………………
        Ví dụ:
        public static void main(String[] args) {
        List<String> objList = new ArrayList<String>();
        System.out.println(objList.size());// sẽ in ra số 0.
        objList.add(“A”);
        objList.add(“B”);
        objList.add(“C”);
        objList.add(“D”);
        objList.add(“E”);
        objList.add(“F”);
        System.out.println(objList.size()); // sẽ in ra số 6. vì lúc này đã có 6 phần tử thêm vào.
        System.out.println(objList.contains(“A”)); // sẽ in ra true
        System.out.println(“hãy khám phá thêm nhé…”);
        }
        3/ Vector
        Lớp vector tương tự như ArrayList và nó cũng thực thi các mảng động. Lớp vector lưu mảng các đối tượng và kích thước của mảng này có thể tăng hoặc giảm. Chúng ta có thể truy cập các phần tử của Vector bằng cách sử dụng vị trí của phần tử đó.
        Sự khác nhau giữa Vector và ArrayList là các phương thức của Vector dùng cơ chế đồng bộ (synchronised) và thread-safe. Cho nên Vector thường chạy chậm, các phương thức của ArrayList chạy nhanh hơn.
        Các phương thức khởi tạo của Vector là:
        Vector()
        Vector(Collection c)
        Vector (int initialCapacity)
        Vector (int initialCapacity, int capacityIncrement)
        Các phương thức cơ bản của lớp này:
        addElement(Object obj) phương thức này thêm phần tử vào vị trí cuối cùng của Vector và kích thước của Vector sẽ tăng lên 1.
        insertElementAt(Object obj, int index) chèn một phần tử tại một vị trí xác định.
        setElementAt(Object obj, int index) đặt giá trị cho một phần tử tại một vị trí
        toArray() phương thức này trả về một mảng chứa tất cả các phần tử trong Vector.
        elementAt(int pos)  lấy một đối tượng được lưu trữ được xác định bởi vị trí.
        removeElement(Object obj) xóa một phần tử xuất hiện đầu tiên trong Vector có giá trị bằng với Object.
        Ví dụ:
        public static void main(String[] args) {
        Vector<Object> objVec = new Vector<Object>();
        objVec.addElement(new Integer(1));
        objVec.addElement(new Integer(2));
        objVec.addElement(new Integer(3));
        objVec.addElement(new Integer(4));
        System.out.println(objVec); // [1, 2, 3, 4]
        System.out.println(objVec.capacity()); // 10
        System.out.println(objVec.size()); // 4
        objVec.removeElement(3);
        System.out.println(objVec); // [1, 2, 4]
        }
        4/ LinkedList
        LinkedList là một danh sách liên kết hai chiều. Việc truy cập các phần tử phải theo tuần tự. Các phần tử trong linkedlist được lưu trữ như là những link riêng biệt. Nó cung cấp cho chúng ta một danh sách dữ liên liên kết với nhau. Nhìn hình sau:
        Khi có một phần tử bất kì bị remove: Tôi remove Bob nhé:
        Các phương thức khởi tạo của LinkedList:
        LinkedList()
        LinkedList(Collection c)
        Các phương thức cơ bản: ngoài những phương thức mà nó kế thừa từ lớp cha thì nó còn có một vài phương thức riêng rất có ích.
        addFirst(Object obj) Thêm phần tử vào vị trí đầu danh sách.
        addLast(Object obj) Thêm phần tử vào vị trí cuối danh sách.
        getFirst() Lấy phần tử đầu tiên trong danh sách.
        getLast() Lấy phần tử cuối trong danh sách.
        removeFirst() Xóa phần tử đầu tiên trong danh sách.
        removeLast() Xóa phần tử cuối trong danh sách.
        Ví dụ:
          public static void main(String[] args){
        LinkedList link=new LinkedList();
        link.add(“a”);
        link.add(“b”);
        link.add(new Integer(10));
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” + link.size());
        link.addFirst(new Integer(20));
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” + link.size());
        link.addLast(“c”);
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” link.size());
        link.add(2,“j”);
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” + link.size());
        link.add(1,“t”);
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” + link.size());


        link.remove(3);
        System.out.println(“The contents of array is” + link);
        System.out.println(“The size of an linkedlist is” + link.size());
        }
        }

        Categories

        Sample Text

        Được tạo bởi Blogger.

        Must Read

        Biểu mẫu liên hệ

        Tên

        Email *

        Thông báo *

        Popular Posts

        Video

        Popular Posts

        Our Facebook Page