public class Patient extends Person {
    private String Diagnosis;
    private Appointment[] appointment = new Appointment[2];
    private int numberofAppointment;
    public static int numberOfPatient;

    public void DellappointmentAT(int index) {
        appointment[index].setAvailable(true);
        numberofAppointment--;
    }
}

मैंने जो वर्ग बनाया है, उसमें डेटा फ़ील्ड के रूप में ऑब्जेक्ट का एक ऐरे है और मेरे पास यह तरीका है जो इस सरणी से एक तत्व को हटा देना चाहिए, मैं सरणी आकार को बदले बिना तत्व को हटाना चाहता हूं।

1
Fddw 20 मार्च 2020, 08:14
समस्या क्या है?
 – 
dassum
20 मार्च 2020, 08:18
जावा में सामान्य सरणियों का एक निश्चित आकार होता है, इसलिए आप यहां की आवश्यकताओं के संबंध में गलत डेटाटाइप का उपयोग कर रहे हैं। इस कार्य के लिए ArrayList का प्रयोग करें।
 – 
akuzminykh
20 मार्च 2020, 08:26

2 जवाब

इस बारे में कैसा है:

public void DellappointmentAT(int index) {
    appointment[index].setAvailable(true);
    numberofAppointment--;
    for (int i = index; i < numberofAppointment; ++i) {
        appointment[i] = appointment[i+1];
    }
}
0
Maurice Perry 20 मार्च 2020, 09:10

किसी तत्व को हटाने से सरणी का आकार प्रभावित होगा।

यदि आपको वास्तव में वही रहने के लिए प्रारंभिक सरणी की आवश्यकता है, तो 2 सामान्य दृष्टिकोण हैं:

  1. एक और सरणी बनाएं ताकि आपकी प्रारंभिक सरणी संशोधित न हो
  2. सॉफ्ट डिलीट - ऑब्जेक्ट के अंदर एक रिमूव फ्लैग बनाएं। इस तरह, आप हटाए गए डेटा के बीच अंतर कर सकते हैं और सरणी का आकार वही रहता है
1
Anthonius 20 मार्च 2020, 08:24