Bài tập Array trong Java có lời giải – Học hỏi Net

1. Bài 1

Đề bài : Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê những thành phần Open trong mảng đúng 1 lần .

Lời giải

Trong bài này chúng tôi sử dụng TreeMap để lưu những từ tìm được và số lần Open của chúng trong mảng đã cho .

File: BaiTap19.java

package vn.eLib.baitap.array;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 * Chương trình liệt kê số lần xuất hiện các phần tử trong một mảng
 * nhập từ bàn phím trong java.
 *
 * @author eLib.vn
 */
public class BaiTap19 {
  public static Scanner scanner = new Scanner(System. in );

  /**
     * main
     *
     * @param args
     */
  public static void main(String[] args) {
    System.out.print("Nhập số phần tử của mảng: ");
    int n = scanner.nextInt();
    // khởi tạo arr
    int[] arr = new int[n];
    System.out.println("Nhập các phần tử của mảng: ");
    for (int i = 0; i < n; i++) {
      System.out.printf("a[%d] = ", i);
      arr[i] = scanner.nextInt();
    }
    // tìm số lần xuất hiện của các phần tử
    Map < Integer,
    Integer > map = new TreeMap < Integer,
    Integer > ();
    for (int i = 0; i < n; i++) {
      addElement(map, arr[i]);
    }
    System.out.print("Các phần tử xuất hiện 1 lần: ");
    for (Integer key: map.keySet()) {
      if (map.get(key) == 1) {
        System.out.print(key + " ");
      }
    }
  }

  /**
     * Thêm từ vào map
     *
     * @param wordMap: map chứa các từ và số lần xuất hiện
     * @param sb: từ cần thêm vào wordMap
     */
  public static void addElement(Map < Integer, Integer > map, int element) {
    if (map.containsKey(element)) {
      int count = map.get(element) + 1;
      map.put(element, count);
    } else {
      map.put(element, 1);
    }
  }
}

Kết quả :

Nhập số phần tử của mảng: 6
Nhập các phần tử của mảng: 
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 1
a[4] = 2
a[5] = 5
Các phần tử xuất hiện 1 lần: 3 5 

2. Bài 2

Đề bài : Viết chương trình nhập một mảng số nguyên a0, a1, a2, …, an-1. Liệt kê số lần Open của những thành phần trong một mảng đã cho .

Lời giải

Trong bài này chúng tôi sử dụng TreeMap để lưu những từ tìm được và số lần Open của chúng trong mảng đã cho .
File : BaiTap21. java

package vn.eLib.baitap.array;

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 * Chương trình liệt kê số lần xuất hiện các phần tử trong một mảng
 * nhập từ bàn phím trong java.
 *
 * @author viettuts.vn
 */
public class BaiTap21 {
  public static Scanner scanner = new Scanner(System. in );

  /**
     * main
     *
     * @param args
     */
  public static void main(String[] args) {
    System.out.print("Nhập số phần tử của mảng: ");
    int n = scanner.nextInt();
    // khởi tạo arr
    int[] arr = new int[n];
    System.out.print("Nhập các phần tử của mảng: n");
    for (int i = 0; i < n; i++) {
      System.out.printf("a[%d] = ", i);
      arr[i] = scanner.nextInt();
    }
    // tìm số lần xuất hiện của các phần tử
    Map < Integer,
    Integer > map = new TreeMap < Integer,
    Integer > ();
    for (int i = 0; i < n; i++) {
      addElement(map, arr[i]);
    }
    System.out.print("Các phần tử xuất hiện 2 lần: n");
    for (Integer key: map.keySet()) {
      System.out.printf("%d xuất hiện %d lần.n", key, map.get(key));
    }
  }

  /**
     * Thêm từ vào map
     *
     * @param wordMap: map chứa các từ và số lần xuất hiện
     * @param sb: từ cần thêm vào wordMap
     */
  public static void addElement(Map < Integer, Integer > map, int element) {
    if (map.containsKey(element)) {
      int count = map.get(element) + 1;
      map.put(element, count);
    } else {
      map.put(element, 1);
    }
  }
}

Kết quả :

Nhập số phần tử của mảng: 10
Nhập các phần tử của mảng: 
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
a[4] = 1
a[5] = 2
a[6] = 2
a[7] = 5
a[8] = 6
a[9] = 7
Các phần tử xuất hiện 2 lần: 
1 xuất hiện 2 lần.
2 xuất hiện 3 lần.
3 xuất hiện 1 lần.
4 xuất hiện 1 lần.
5 xuất hiện 1 lần.
6 xuất hiện 1 lần.
7 xuất hiện 1 lần.

3. Bài 3

Đề bài : Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Hãy sắp xếp mảng theo thứ tự tăng dần .

Lời giải

Sau đây là chương trình Java sắp xếp mảng theo thứ tự tăng dần :
File : BaiTap22. java

package vn.eLib.baitap.array;

import java.util.Scanner;

/**
 * Chương trình sắp xếp mảng số nguyên theo thứ tự tăng dần.
 *
 * @author viettuts.vn
 */
public class BaiTap24 {
  public static Scanner scanner = new Scanner(System. in );

  /**
     * main
     *
     * @param args
     */
  public static void main(String[] args) {
    System.out.print("Nhập số phần tử của mảng: ");
    int n = scanner.nextInt();
    // khởi tạo arr
    int[] arr = new int[n];
    System.out.print("Nhập các phần tử của mảng: n");
    for (int i = 0; i < n; i++) {
      System.out.printf("a[%d] = ", i);
      arr[i] = scanner.nextInt();
    }
    // sắp xếp dãy số theo thứ tự tăng dần
    sortASC(arr);
    System.out.println("Dãy số được sắp xếp tăng dần: ");
    show(arr);
  }

  /**
     * sắp xếp mảng số nguyên theo thứ tự tăng dần
     *
     * @param arr: mảng các số nguyên
     * @param n: số phần tử của mảng
     */
  public static void sortASC(int[] arr) {
    int temp = arr[0];
    for (int i = 0; i < arr.length - 1; i++) {
      for (int j = i + 1; j < arr.length; j++) {
        if (arr[i] > arr[j]) {
          temp = arr[j];
          arr[j] = arr[i];
          arr[i] = temp;
        }
      }
    }
  }

  /**
     * in các phần tử của mảng ra màn hình
     *
     * @param arr: mảng các số nguyên
     * @param n: số phần tử của mảng
     */
  public static void show(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
      System.out.print(arr[i] + " ");
    }
  }
}

Kết quả :

Nhập số phần tử của mảng: 7
Nhập các phần tử của mảng: 
a[0] = 1
a[1] = 2
a[2] = 5
a[3] = 6
a[4] = 3
a[5] = 1
a[6] = 9
Dãy số được sắp xếp tăng dần: 
1 1 2 3 5 6 9 

4. Bài 4

Đề bài : Viết chương trình Java nhập một mảng số nguyên a0, a1, a2, …, an-1. Hãy sắp xếp mảng theo thứ tự tăng dần, sau đó chèn thành phần k vào mà vẫn bảo vệ mảng là tăng dần .

Lời giải

Chèn thành phần vào mảng trong java .

Chèn phần tử vào mảng trong java

File : BaiTap24. java

package vn.eLib.baitap.array;

import java.util.Scanner;

/**
 * Chương trình sắp xếp mảng theo thứ tự tăng dần,
 * sau đó chèn phần tử k vào mà vẫn đảm bảo mảng là tăng dần.
 *
 * @author eLib.vn
 */
public class BaiTap24 {
  public static Scanner scanner = new Scanner(System. in );

  /**
     * main
     *
     * @param args
     */
  public static void main(String[] args) {
    System.out.print("Nhập số phần tử của mảng: ");
    int n = scanner.nextInt();
    // khởi tạo arr
    int[] arr = new int[n];
    System.out.print("Nhập các phần tử của mảng: n");
    for (int i = 0; i < n; i++) {
      System.out.printf("a[%d] = ", i);
      arr[i] = scanner.nextInt();
    }
    System.out.print("Nhập phần tử k = ");
    int k = scanner.nextInt();
    // sắp xếp dãy số theo thứ tự tăng dần
    sortASC(arr);
    System.out.print("Sắp xếp mảng tăng dần: ");
    show(arr);
    System.out.printf("nChèn phần tử %d vào mảng.", k);
    arr = insert(arr, k);
    System.out.print("nMảng sau khi chèn: ");
    show(arr);
  }

  /**
     * sắp xếp mảng số nguyên theo thứ tự tăng dần
     *
     * @param arr: mảng các số nguyên
     */
  public static void sortASC(int[] arr) {
    int temp = arr[0];
    for (int i = 0; i < arr.length - 1; i++) {
      for (int j = i + 1; j < arr.length; j++) {
        if (arr[i] > arr[j]) {
          temp = arr[j];
          arr[j] = arr[i];
          arr[i] = temp;
        }
      }
    }
  }

  /**
     * chèn phần tử vào mảng số nguyên tăng dần
     * sau khi chèn mảng vẫn duy trì thứ tự tăng dần
     *
     * @param arr: mảng số nguyên tăng dần
     * @param k: phần tử chèn vào mảng arr
     */
  public static int[] insert(int[] arr, int k) {
    int arrIndex = arr.length - 1;
    int tempIndex = arr.length;
    int[] tempArr = new int[tempIndex + 1];
    boolean inserted = false;

    for (int i = tempIndex; i >= 0; i--) {
      if (arrIndex > -1 && arr[arrIndex] > k) {
        tempArr[i] = arr[arrIndex--];
      } else {
        if (!inserted) {
          tempArr[i] = k;
          inserted = true;
        } else {
          tempArr[i] = arr[arrIndex--];
        }
      }
    }
    return tempArr;
  }

  /**
     * in các phần tử của mảng ra màn hình
     *
     * @param arr: mảng các số nguyên
     */
  public static void show(int[] arr) {
    for (int i = 0; i < arr.length; i++) {
      System.out.print(arr[i] + " ");
    }
  }
}

Kết quả :

Nhập số phần tử của mảng: 5
Nhập các phần tử của mảng: 
a[0] = 2
a[1] = 3
a[2] = 4
a[3] = 5
a[4] = 6
Nhập phần tử k = 1
Sắp xếp mảng tăng dần: 2 3 4 5 6 
Chèn phần tử 1 vào mảng.
Mảng sau khi chèn: 1 2 3 4 5 6 

Trên đây là 4 bài tập cơ bản về mảng trong Java mà eLib muốn trình làng đến bạn. Có rất nhiều cách giải và còn rất nhiều dạng bài tập tương quan đến chuỗi, bạn hoàn toàn có thể tìm hiểu thêm trên những bài viết của eLib. Chúc những bạn thành công xuất sắc !