Thắc mắc về List<> trong java

Hi mọi người, em có 1 vấn đề về lập trình java mà fix mãi k đc. mong mọi người chỉ giáo )

đề bài: xây dựng lớp người có thông tin họ tên, ngày sinh. Xây dựng lớp cán bộ chứa thông tin: mã, phòng ban, chức vụ, lương và phương thức nhập xuất… Viết chương trình nhập vào danh sách cán bộ.

  1. Đếm số cán bộ thuộc phòng kĩ thuật.

  2. Kiểm tra cán bộ Nguyễn Văn A có trong danh sách không?. Nếu có đưa ra thông tin.

  3. sắp xêp danh sách cán bộ thuộc phòng kế hoạch giảm dần theo lương.

và đây là code của em. Em dùng List<> để làm bài này. Vấn đề của em hiện nay

Câu 1: biến đếm của em lúc nào cùng về 0

Câu 2: Em không biết tìm đc tên nguyên Văn A rồi thì làm sao để xuất ra đc đúng thông tin người đó.

Câu 3: vì em đang mải suy nghĩ 2 câu kia nên câu 3 em chưa làm đc :((

Đây là code của em về Class cán bộ. Mong mọi người gợi ý cho em để e fix. E đang nản quá

public class canbo extends nguoi {
	List<canbo> list = new LinkedList<canbo>();
	private String macanbo;
	private  String phongban;
	private String chucvu;
	private float luong;
	public canbo b;
	static int dem;
	public String getMacanbo() {
		return macanbo;
	}
	public void setMacanbo(String macanbo) {
		this.macanbo = macanbo;
	}
	public String getPhongban() {
		return phongban;
	}
	public void setPhongban(String phongban) {
		this.phongban = phongban;
	}
	public String getChucvu() {
		return chucvu;
	}
	public void setChucvu(String chucvu) {
		this.chucvu = chucvu;
	}
	public float getLuong() {
		return luong;
	}
	public void setLuong(float luong) {
		this.luong = luong;
	}
	
	Scanner z = new Scanner(System.in);
	public void nhap()
	{	
		int n;
		System.out.println("Nhap vao N");
		n = z.nextInt();
		for(int i=0; i<n; i++)
		{
		b = new canbo();
		System.out.println("Nhap vao ten can bo: ");
		b.setHoten(z.next());
		System.out.println("nhap vao ma can bo: ");
		b.setMacanbo(z.next());
		z.nextLine();
		System.out.println("Nhap vao ngay sinh: ");
		b.setNgaysinh(z.next());
		System.out.println("Nhap vao phong ban: ");
		b.setPhongban(z.next());
		z.nextLine();
		System.out.println("nhap vao chuc vu");
		b.setChucvu(z.next());
		z.nextLine();
		System.out.println("Nhap vao luong: ");
		b.setLuong(z.nextFloat());
		if((b.getPhongban()=="ki thuat"))
		{
			dem = dem +1;
		}
		list.add(b);
		}
		
	}
	public void xuat()
	{
		for (canbo canbo : list) {
			System.out.println("Ten can bo"+ canbo.getHoten());
			System.out.println("Ma can bo"+ canbo.getMacanbo());
			System.out.println("ngay sinh"+canbo.getNgaysinh());
			System.out.println("Phong ban: "+ canbo.getPhongban());
			System.out.println("chuc vu: " + canbo.getChucvu());
			System.out.println("luong: "+ canbo.getLuong());
		}
		System.out.println("So nhan vien phong ki thuat la"+ b.dem);
	}
	
	
}

linked list là 1 đối tượng dùng để lưu thông tin của mỗi cán bộ chứ ko phải cán bộ lưu thông tin của linked list nhé

1 Like

tạo 1 đối tượng linked list rồi add đối tượng cán bộ đó vào linked list

em sửa đonạ đầu thế này đc chưa anh. thực ra code của em là thế này rồi nhưng k hiểu sao add lên đây lại bị mất phần ngoặc nhọn

Vấn đề là bạn new List trong class canbo, nên đếm lúc nào cũng là 0.
Nếu bạn còn chưa giải được bài này thì pm mình hướng dẫn cho nhé

1 Like

Cảm ơn a. Vấn đề của e đã giải quyết đc r ạ. :grin:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?