01/10/2018, 09:54

Hỏi về cách thức tìm kiếm và sắp xếp trong Arrays List Java

Chào các ban. Mình có một bài toàn về mảng Arrays list nhờ các bạn giúp đỡ. Mình tìm kiếm phần tử trong mảng nhưng khi tìm kiếm ra nó lại lặp 2 lần. Với phương thức sắp xếp và xóa tại sao nó ko in ra phần tử đã xóa và sắp xếp rồi vậy.

package OPP;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Scanner;
//lop colection
public class StudentDAO {
	ArrayList<Integer> ls = new ArrayList<>();

	public static void main(String[] args) {
		
		StudentDAO t = new StudentDAO();
		t.menu();
//		t.inputData();
//		t.printData();
	}
	public void inputData(){
		Scanner sc = new Scanner(System.in);
		String check = ("y");
		do {
			System.out.println("input data");
			ls.add(sc.nextInt());
			System.out.println("Continue");
			check = sc.next();
		} while(check.equalsIgnoreCase("y"));
	}
	public void printData(){
		for (int i = 0; i < ls.size(); i++) {
			System.out.println("=>"+ls.get(i));
		}
	}
	public int findByID(int id){
		for (int i = 0; i < ls.size(); i++) {
			if (ls.get(i)==id){
			
				System.out.println("tim thay gia tri phan tu "+ls.get(i));
				return i;
			}
			
		} 
		return -1;
	}
	public void deleteByID(int id){
		int pos = findByID(id);
		if (pos>=0){
			ls.remove(pos);
		}else{
			System.out.println("not found");
		}
	}
	public void doASC(){
		Collections.sort(ls);
		printData();
		Collections.reverse(ls);
	}
	public void menu()
	{
		System.out.println("1. Input");
		System.out.println("2. Get all list");
		System.out.println("3. Find");
		System.out.println("4. delete");
		System.out.println("5. arrangemnet");
		Scanner sc = new Scanner(System.in);
		System.out.println("Please choice");
		int choice = sc.nextInt();
		switch(choice){
		case 1: inputData(); menu();
		case 2: printData(); menu();
		case 3: System.out.println("input id find");
			int idFind = sc.nextInt();
			findByID(idFind); 
			int find = findByID(idFind); 
			if (find<0){
				System.out.println("not found");
			}else
				System.out.println("found pos"+find);
			
			menu();
		
		case 4: System.out.println("input id delete");
		int idDel = sc.nextInt();
		
		
		menu();
		
		case 5: System.out.println("Arrangement ASC");
		doASC(); menu();
		default: System.exit(0);
		}	
		
		
		
	}

}
Quân viết 12:02 ngày 01/10/2018
  1. Switch thiếu break giữa các case.
  2. Method findId gọi 2 lần nên bị tìm kiếm 2 lần.
  3. Chưa impl thuật toán in đối tượng đã xóa
  4. Chưa impl thuật toán in danh sách đối tượng sau khi sắp xếp.
    PS: bạn viết code có bao giờ xem lại mình đã viết cái gì cũng như tự mình debug xem lỗi đến từ đâu trước khi đăng hỏi không vậy
Bài liên quan
0