01/10/2018, 15:52

Cho mình hỏi về Java?

Mình tự học Java, mình có bài làm thế này:
package svpoly;

import java.util.ArrayList;
import java.util.Scanner;

/**
 *
 * @author Administrator
 */
public class SVPoly {
    private String hvt;
    private double dtb;
    
    public void setHvt (String hvt){
        this.hvt = hvt;
    }
    public String getHvt (){
        return hvt;
    }
    public void setDtb (double dtb){
        this.dtb = dtb;
    }
    public double getDtb(){
        return dtb;
    }
    public static void main(String[] args) {
        ArrayList <SVPoly> SVlist = new ArrayList ();
        Scanner sc = new Scanner (System.in);
        System.out.println("Nhap so luong sv");
        int n = sc.nextInt();
        
        for (int i =0; i<n; i++){
            SVPoly sv = new SVPoly ();
            System.out.printf("Nhap vao sinh vien thu %d ", i+1);
            System.out.println();
            sc.nextLine();
            System.out.println("Nhap ten: ");
                String ten = sc.nextLine();
            System.out.println("Nhap dtb");
                double diem = sc.nextDouble();
                sv.setHvt(ten);
                sv.setDtb(diem);
                SVlist.add(sv);
        }
        for (int i=0; i< SVlist.size(); i++){
            System.out.printf("SV thu %d", i+1);
            System.out.println();
            System.out.println("Ten "+SVlist.get(i).getHvt()+ " DTB " + SVlist.get(i).getDtb());
        }
        System.out.println(" Duoi tb");
            for (int i =0; i<SVlist.size(); i++){
                if (SVlist.get(i).dtb <5){
                    System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
                }
            }
        System.out.println(" Tren tb");
            for (int i =0; i<SVlist.size(); i++){  
                if (SVlist.get(i).dtb >=5){
                System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
                }
            }
        System.out.println(" Nhap sinh vien can tim ");
            sc.nextLine();
            String tim = sc.nextLine();
            for (int i =0; i<SVlist.size(); i++){
                if (SVlist.get(i).getHvt().equalsIgnoreCase(tim)){
                    System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
                    SVlist.remove(i);
                }
            }
        System.out.println(" sau khi xoa");
            for (int i =0; i<SVlist.size(); i++){  
                System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
            }
    }
}

**Đề có yêu cầu mình TÌM VÀ SỬA SINH VIÊN THEO HỌ TÊN nhưng mình không làm được với lệnh ArrayList.set . Mong các cao nhân giúp đỡ!! Thanks

Nguyễn Đình Anh viết 18:05 ngày 01/10/2018

@@ Tại sao bạn lại để luôn Void main() trong luôn Class SVPoly vậy @@ Phải tạo riêng 1 Class SVPoly và Class Chính để chạy riêng chứ !

Nguyễn Đình Anh viết 17:52 ngày 01/10/2018

Và mình cũng chưa thấy Void ArrayList.setnào trong đoạn code trên @@ Vậy làm sao mà bt bạn bị bug chỗ nào @@

Tâm Cao viết 17:58 ngày 01/10/2018

ah, cái này mình biết, mình để vậy để các bác dễ xem thui!! Với đây là bài tập nhỏ để học lệnh ArrayList nên mình nghĩ không cần thiết!! Theo bài này mình đánh lệnh
for (int i =0; i<SVlist.size(); i++){
if (SVlist.get(i).getHvt().equalsIgnoreCase(tim)){
System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
SVlist.set (i, “tam”) //Thay thế “tâm” vào vị trí thứ i thì báo lỗi …Có thể giúp mình chỗ này???
SVlist.remove(i);

Nguyễn Đình Anh viết 18:02 ngày 01/10/2018

Nó bào là lỗi j vậy ?

Nguyễn Đình Anh viết 17:56 ngày 01/10/2018

ah, cái này mình biết, mình để vậy để các bác dễ xem thui!! Với đây là bài tập nhỏ để học lệnh ArrayList nên mình nghĩ không cần thiết!! Theo bài này mình đánh lệnh
for (int i =0; i<SVlist.size(); i++){
if (SVlist.get(i).getHvt().equalsIgnoreCase(tim)){
System.out.println("Ten " +SVlist.get(i).getHvt()+ " DTB " +SVlist.get(i).getDtb());
SVlist.set (i, “tam”) //Thay thế “tâm” vào vị trí thứ i thì báo lỗi …Có thể giúp mình chỗ này???
SVlist.remove(i);

Ah, Cái SVlist chứ SVPoly chứ không phải String, nên bạn không thể set dc !

Tâm Cao viết 18:02 ngày 01/10/2018

Vậy làm sao để có thể sửa giá trị vào vị trí thứ i vậy? Làm thế nào cho đúng? Help me!!

Nguyễn Đình Anh viết 18:05 ngày 01/10/2018

Bạn phải thay thế vào đó 1 SVPoly là dc.

Tâm Cao viết 18:05 ngày 01/10/2018

Cụ thể là thế nào vậy bạn? Bạn có thể hoàn thành câu lệnh giúp mình không vậy??

Nguyễn Đình Anh viết 18:04 ngày 01/10/2018

SVlist.set (i, “tam”)

Vd nhé:

SVlist.set (i, new SVPoly()) ;

Thay cái new SVPoly() thành SVPoly() mà bạn muốn thêm vào !

Tâm Cao viết 18:08 ngày 01/10/2018

ok thanks bạn, mình làm đc òi

Bài liên quan
0