(जावा) कैसे कर सकते हैं मैं प्रिंट एक वस्तु की जानकारी जब वस्तु में एक ArrayList? [नकल]

0

सवाल

मैं एक ArrayList में मुख्य और मैं एक वर्ग के साथ एक निर्माता के अंदर यह और एक विधि करने के लिए डेटा मुद्रित. मैं जोड़ने के लिए एक नई वस्तु के साथ नई जानकारी है, जब कहा जाता है, और कहते हैं, यह करने के लिए ArrayList में रखने के लिए एक जगह है. मैं क्या कर रहा हूँ एक कठिन समय है सिंटैक्स जानकारी मुद्रित करने के लिए. मैं यह कोशिश की है के साथ एक नियमित सरणी लेकिन मैं का उपयोग करने की जरूरत ArrayList. मैं की जरूरत करने के लिए सक्षम हो जाएगा प्राप्त करने के लिए सूचकांक के एक विशेष वस्तु के लिए, और प्रिंट है कि वस्तु के बारे में जानकारी । उदाहरण के लिए, नीचे दिए गए कोड के अंतिम दो लाइनों:

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

public class student{

    String name;
    int age;
    int birthYear;

    public student(String name, int age, int birthYear){
        this.name = name;
        this.age = age;
        this.birthYear = birthYear;
    }
    
    public void printStudentInformation(){
        System.out.println(name);
        System.out.println(age);
        System.out.println(birthYear);
    }
}

public class Main{
    public static void main(String[] args){

        ArrayList listOfObj = new ArrayList();
        ArrayList names = new ArrayList();
        Scanner sc = new Scanner(System.in);

        for(int i = 0; i < 3; i++){

            System.out.println("New Student Information:"); // Three student's information will be saved
            String name = sc.nextLine();
            int age = sc.nextInt();
            int birthYear = sc.nextInt();

            student someStudent = new student(name, age, birthYear);
            listOfObj.add(someStudent);
            names.add(name);
        }

        System.out.println("What student's information do you wish to view?");
        for(int i = 0; i < names.size(); i++){
            System.out.println((i + 1) + ") " + names.get(i)); // Prints all students starting from 1
        }
        int chosenStudent = sc.nextInt(); // Choose a number that correlates to a student
        
        // Should print out chosen student's object information
        listOfObj.get(chosenStudent).printStudentInformation(); // This is incorrect, but I would think the syntax would be similar?
        
    }
}

किसी भी मदद या स्पष्टीकरण काफी सराहना की है ।

arraylist java printing
2021-11-24 04:07:52
3
1

आप को बदलने की जरूरत है की अपनी परिभाषा listOfObj से:

ArrayList listOfObj = new ArrayList();

करने के लिए:

ArrayList<student> listOfObj = new ArrayList<>();

पहला जाएगा पैदा करेगा ArrayList के Object वर्ग की वस्तुओं.

दूसरा पैदा करेगा ArrayList के student वर्ग की वस्तुओं.

कुछ और अधिक समस्याओं में अपने कोड:

  1. के बाद से आप कर रहे हैं पढ़ने के नाम का उपयोग कर nextLine, आप की आवश्यकता हो सकती है को छोड़ करने के लिए एक नई लाइन को पढ़ने के बाद जन्म वर्ष की तरह:
...
int birthYear = sc.nextInt();
sc.nextLine();  // Otherwise in the next loop iteration, it will skip reading input and throw some exception
...
  1. आप एक विकल्प का चयन करें छात्र के लिए प्रदर्शित करने के लिए, लेकिन लगता है कि विकल्प है 1 अनुक्रमित और ArrayList दुकानों 0 अनुक्रमित है, तो आप चाहिए लाइन बदलने के लिए sc.nextInt() - 1:
int chosenStudent = sc.nextInt() - 1; // Choose a number that correlates to a student
  1. Scanner हो सकता है अपवाद फेंक के मामले में आप दर्ज करें, उदाहरण के लिए, एक स्ट्रिंग के बजाय एक पूर्णांक है. तो सुनिश्चित करें कि आप कर रहे हैं से निपटने के अपवाद ठीक से का उपयोग कर try-catch ब्लॉक.
2021-11-24 04:26:42
1
  • आप बदल ArrayList defination जोड़ने और toString() में अपने बॉय फ्रेंड के साथ भाड़ वर्ग.
  • और प्रिंट करने के लिए सभी छात्र वस्तु के insted का उपयोग कर पाश के लिए बस का उपयोग एक शराबी.

पूर्व:-

import java.util.*;

class Student {
    private String name;
    private int age;
    private int birthYear;

    public Student() {
        super();
    }

    public Student(String name, int age, int birthYear) {
        super();
        this.name = name;
        this.age = age;
        this.birthYear = birthYear;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getBirthYear() {
        return birthYear;
    }

    public void setBirthYear(int birthYear) {
        this.birthYear = birthYear;
    }

    @Override
    public String toString() {
        return "Student [age=" + age + ", birthYear=" + birthYear + ", name=" + name + "]";
    }

}

public class DemoArrayList {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<Student>();

        Scanner scan = new Scanner(System.in);

        int n = scan.nextInt();

        for (int i = 0; i < n; i++) {
            scan.nextLine();
            String name = scan.nextLine();
            int age = scan.nextInt();
            int birthYear = scan.nextInt();
            list.add(new Student(name, age, birthYear));
        }

        System.out.println(list);
    }
}

ओ/पी:-

2
joy 
10
2003
jay
20
2005
[Student [age=10, birthYear=2003, name=joy], Student [age=20, birthYear=2005, name=jay]]
2021-11-24 04:14:02

हाय, आप कर सकते हैं संपादित करें, अपने जवाब और कुछ कोड जोड़ने के रूप में अच्छी तरह से इतना है कि सेशन में बेहतर समझ सकते हैं?
kiner_shah

ठीक है बस कुछ समय प्रतीक्षा करें
Batek'S

अब इस कोड.
Batek'S
0

तुम घोषणा नहीं कर सकते हैं के प्रकार ArrayList जबकि प्रारंभ listOfObj और names में ArrayList.

यहाँ है सही तरीके से घोषित करने के लिए ArrayList:

ArrayList<type> list = new ArrayList();

और अन्य समस्या है, जबकि आप डेटा लाने से ArrayList. चर chosenStudent स्थिति लेने से उपयोगकर्ता और डेटा से listOfObj लेकिन सूचकांक से शुरू है । 0 नहीं 1.

उदाहरण के लिए अपने इनपुट है 2 तो, ArrayList से डेटा प्राप्त दूसरे स्थान पर लेकिन अपने सूचकांक से शुरू है । 1 जबकि प्रिंट डेटा । आप करने के लिए डाल दिया chosenStudent - 1 पाने के लिए सही डेटा.

listOfObj.get(chosenStudent - 1).printStudentInformation() // chosenStudent = 2 - 1 = 1 

यहाँ नीचे है मेरे कोड:

ArrayList<student> listOfObj = new ArrayList<>();
ArrayList<String> names = new ArrayList<>();
Scanner sc = new Scanner(System.in);
    for(int i = 0; i < 3; i++){
        System.out.println("New Student Information:");
        String name = sc.next();
        int age = sc.nextInt();
        int birthYear = sc.nextInt();

        student someStudent = new student(name, age, birthYear);
        listOfObj.add(someStudent);
        names.add(name);
     }

     System.out.println("What student's information do you wish to view?");
     for(int i = 0; i < names.size(); i++){
        System.out.println((i + 1) + ") " + names.get(i));
     }
     int chosenStudent = sc.nextInt();
        
     listOfObj.get(chosenStudent - 1).printStudentInformation();
2021-11-24 04:41:01

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में