Tìm các phần tử giống nhau trong mảng

Viết chương trình nhập vào 10 phần tử cho 1 ArrayList chứa các số nguyên dương. Sau đó loại bỏ các phần tử trùng nhau trong ArrayList đó và hiển thị lại ArrayList này.

Tìm các phần tử giống nhau trong mảng

Bài giải

-------------------- ######## --------------------

Hướng dẫn: Để giải bài này, chúng ta sẽ tạo mới 2 ArrayList: 1 ArrayList ban đầu và 1 ArrayList chứa các phần tử không trùng nhau của ArrayList ban đầu. Sau đó chúng ta sẽ tiến hành xóa tất cả các phần tử của ArrayList ban đầu và sử dụng phương thức addAll() thêm tất cả các phần tử của ArrayList không chứa các phần tử trùng nhau vào ArrayList ban đầu, kết quả ta sẽ có 1 ArrayList thỏa mãn yêu cầu của đề bài.

Tìm các phần tử giống nhau trong mảng

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bài giải

public static void main(String[] args) { int number; ArrayList arrListNumber = new ArrayList<>(); Scanner scanner = new Scanner(System.in); for (int i = 0; i < 10; i++) { System.out.print("Nhập phần tử thứ " + i + ": "); number = scanner.nextInt(); arrListNumber.add(number); } // tạo 1 ArrayList arrTemp ArrayList arrTemp = new ArrayList<>(); // thêm các phần tử của arrListNumber vào arrTemp // nếu trong arrTemp đã tồn tại phần tử giống trong arrListNumber // thì không thêm vào, ngược lại thêm bình thường for (int i = 0; i < arrListNumber.size(); i++) { if (!arrTemp.contains(arrListNumber.get(i))) { arrTemp.add(arrListNumber.get(i)); } } // xóa các phần tử của arrListNumber arrListNumber.clear(); // thêm tất cả các phần tử của arrTemp vào arrListNumber // lúc này ta sẽ có 1 ArrayList arrListNumber // không chứa các phần tử trùng nhau arrListNumber.addAll(arrTemp); System.out.println("Các phần tử có trong arrListNumber là: "); System.out.println(arrListNumber); }

Kết quả sau khi biên dịch chương trình:

Tìm các phần tử giống nhau trong mảng

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Tìm các phần tử giống nhau trong mảng

Trong bài viết này mình sẽ hướng dẫn các bạn cách loại bỏ các phần tử trùng lặp khỏi một mảng trong C#. Để làm được điều này các bạn cần có kiến thức cơ bản về các vòng lặp cũng như kiến thức về C# nhé.

Tìm các phần tử giống nhau trong mảng

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong chương trình dưới đây mình sử dụng hai vòng lặp for để thực hiện loại bỏ các phần tử trùng lặp trong mảng, cụ thể như sau:

Bước 1: Ta sử dụng vòng lặp for thứ nhất để lặp từng phần tử trong mảng.

Bước 2: Sử dụng vòng lặp for thứ hai để so sánh các phần tử còn lại với giá trị hiện tại của vòng for thứ nhất. Ví dụ: vòng for thứ nhất đang ở giá trị a thì sẽ so sánh a với các phần tử còn lại, tiếp đến là b thì sẽ so sánh b với các phần tử còn lại.

Bài viết này được đăng tại [free tuts .net]

for (i = 0; i

Bước 3: Để biết được phần tử đó có lặp lại hay không ta sử dụng thêm điều kiện if.

if (arr1.Length == j) { Console.Write (arr1 [i] + ”“); }

Full code:

using System; using System.Linq; using System.Text; using System.Collections.Generic; namespace ConsoleApp5 { class Program { static void Main(string[] args) { int i = 0, j = 0; //khai báo và khởi tạo các giá trị cho các phần tử trong mảng int[] arr1 = new int[] { 7, 7, 8, 8, 9, 1, 1, 4, 2, 2 }; Console.Write("Cac phan tu khong trung lap: "); //sử dụng vòng for thứ nhất lặp từng phần tử trong mảng for (i = 0; i < arr1.Length; i++) { //sử dụng vòng for thứ hai để so sánh các phần tử còn lại với i của vòng for thứ nhất for (j = 0; j < arr1.Length; j++) { if (i == j) continue; if (arr1[j] == arr1[i]) break; } if (arr1.Length == j) { Console.Write(arr1[i] + " "); } } Console.WriteLine("\n ----Chuong trinh nay duoc dang tai Freetuts.net---- \n"); Console.ReadKey(); } } }

Kết quả:

Tìm các phần tử giống nhau trong mảng

Loại bỏ các phần tử trùng lặp khỏi mảng trong C# (cách 2)

Trong chương trình này, mình sẽ sử dụng phương pháp sắp xếp mảng trước khi so sánh. Điều này giúp tối ưu hóa khi thực hiện chương trình, bởi vì chúng ta không cần phải so sánh các phần tử với tất cả phần tử còn lại nữa.

Bước 1: Sắp xếp mảng.

Bước 2: Kiểm tra phần tử đầu tiên có bằng phần tử kế nó, nếu không bằng thì hiển thị ra màn hình (đó là phần tử không trùng lặp)

Bước 3: Sử dụng vòng lặp for để lặp và so sánh từ phần từ thứ hai cho đến phần tử n - 1 (phần tử kế cuối). Phần tử nào không bằng nhau thì hiển thị ra màn hình.

Bước 4: So sánh phần tử cuối cùng với phần tử trước nó, nếu không bằng nhau thì hiển thị ra màn hình.

using System; using System.Linq; using System.Text; using System.Collections.Generic; namespace ConsoleApp5 { class Program { static void Main(string[] args) { int[] arr = { 7, 4, 8, 2, 9, 1, 1, 4, 5, 2 }; int n = arr.Length; Console.Write("Cac phan tu khong trung lap: "); //gọi hàm Unique() đã viết và truyền vào các tham số tương ứng Unique(arr, n); Console.WriteLine("\n ----Chuong trinh nay duoc dang tai Freetuts.net---- \n"); Console.ReadKey(); } static void Unique(int[] arr, int n) { //sử dụng phương thức Sort() của array để sắp xếp mảng Array.Sort(arr); //kiểm tra phần tử đầu tiên if (arr[0] != arr[1]) Console.Write(arr[0] + " "); //Kiểm tra các phần tử còn lại cho đến n-1 for (int i = 1; i < n - 1; i++) if (arr[i] != arr[i + 1] && arr[i] != arr[i - 1]) Console.Write(arr[i] + " "); //Kiểm tra phần tử cuối if (arr[n - 2] != arr[n - 1]) Console.Write(arr[n - 1] + " "); } } }

Kết quả:

Tìm các phần tử giống nhau trong mảng

Như vậy là chúng ta đã thực hiện xong chương trình loại bỏ các phần tử trùng lặp khỏi mảng trong C#. Các bạn hãy luyện tập thật nhiều và thử các cách khác nữa nhé, chúc các bạn thành công !!!

Tìm các phần tử giống nhau trong mảng

Tìm các phần tử giống nhau trong mảng

Tìm các phần tử giống nhau trong mảng

Tìm các phần tử giống nhau trong mảng

Tìm các phần tử giống nhau trong mảng

Tìm các phần tử giống nhau trong mảng

Viết chương trình C# để nhập các phần tử vào trong mảng, sau đó tìm số phần tử giống nhau trong mảng đó và in kết quả trên màn hình.

Bài tập C# này giúp bạn làm quen với các khái niệm: khai báo mảng, khởi tạo mảng, và cách truy cập các phần tử của mảng trong C#.

Chương trình C#

Dưới đây là chương trình C# để giải bài tập tìm số phần tử giống nhau trong một mảng trong C#:

using System; namespace ZaidapCsharp { class TestCsharp { public static void Main() { int[] arr1 = new int[100]; int i, j, n, bien_dem = 0; //day la bien dem Console.Write(" Tim so phan tu giong nhau trong mot mang trong C#: "); Console.Write("--------------------------------------------------- "); Console.Write("Nhap so phan tu can luu giu vao trong mang: "); n = Convert.ToInt32(Console.ReadLine()); Console.Write("Nhap {0} phan tu vao trong mang: ", n); for (i = 0; i < n; i++) { Console.Write("Phan tu - {0}: ", i); arr1[i] = Convert.ToInt32(Console.ReadLine()); } /*Tim kiem cac phan tu giong nhau*/ for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { /*Tang bien dem bien_dem khi tim thay phan tu giong nhau.*/ if (arr1[i] == arr1[j]) { bien_dem++; break; } } } Console.Write(" So phan tu giong nhau trong mang la: {0} ", bien_dem); Console.ReadKey(); } } }

Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.

Kết quả chương trình C#

Biên dịch và chạy chương trình C# trên sẽ cho kết quả:

Tìm các phần tử giống nhau trong mảng

Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, Zaidap khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại

Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Ngữ pháp tiếng Anh, luyện thi TOEIC, Java,C,C++,Javascript,HTML,Python,Database,Mobile ... mới nhất của chúng tôi.

Bài học Bài tập C# phổ biến tại vietjack.com: