मैं एक छोटी परियोजना कर रहा हूं जहां मेरे पास बैग सरणी के अंदर दो अलग-अलग प्रकार की गेंद वस्तुएं हैं और मैं उस बैग से दो यादृच्छिक वस्तुएं लेना चाहता हूं। मुझे जो समस्या हो रही है वह उस बैग सरणी से वस्तुओं को हटा रही है। मैं दो यादृच्छिक वस्तुओं को लेने में सफल हो रहा हूं, लेकिन यह बैग सरणी में उनकी स्थिति लेता है और मैं वास्तव में नहीं जानता कि उस बैग सरणी से वस्तुओं को कैसे हटाया जाए।

public class Bag {

    public static void main(String[] args) {
        Balls whiteBalls = new Balls("White");
        Balls blackBalls = new Balls("Black");
        Balls[] objArray;
        whiteBalls.setAmount(16);
        blackBalls.setAmount(20);
        int totalBalls = whiteBalls.getAmount() + blackBalls.getAmount();
        // Create two arrays that hold white and black balls together.
        Balls[] white = new Balls[whiteBalls.getAmount()];
        Balls[] black = new Balls[blackBalls.getAmount()];
        // Adding white balls into array "white".
        for (int i = 0; i < whiteBalls.getAmount(); i++) {
            white[i] = new Balls("White");
        } // Adding black balls into array "black"
        for (int i = 0; i < blackBalls.getAmount(); i++) {
            black[i] = new Balls("Black");
        }
        Balls[] bag = new Balls[totalBalls]; // Making a bag which holds all the balls.
        // Copy's both arrays and fills up array "bag".
        System.arraycopy(white, 0, bag, 0, whiteBalls.getAmount());
        System.arraycopy(black, 0, bag, 16, blackBalls.getAmount());
        //System.out.println(Arrays.toString(bag));

        int count = 0;
        Random rnd = new Random();
        String[] colours = new String[]{"White", "Black"};

        while(bag.length != 1){ // Depending on what colour the balls are either black ball or       white ball is placed back into the bag.
            count++;
            int select1 = rnd.nextInt(colours.length);
            int select2 = rnd.nextInt(colours.length);
            while(white.length != 0 || black.length != 0){
                if(select1 == 0 && select2 == 0){
                    System.out.println("Both are the same colour. " + select1 + " " + select2);

                }
            }
        }
    }
}

जिस दूसरी समस्या में मैं भाग रहा हूं वह मेरी दूसरी कक्षा में है जो गेंद एक विधि 'getColor ()' किसी कारण से काम नहीं करना चाहती है।

public class Balls {
    private String colour;
    private int amount;

    public Balls(String type) {
        colour = type;
    }

    public String getColour() {
        return colour;

    }

    public void changeAmount(int num){
        this.setAmount(num);
    }

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public String toString() {
        return colour;

    }
}

किसी भी प्रतिक्रिया की सराहना की जाती है। पढ़ने के लिए धन्यवाद और अग्रिम धन्यवाद।

0
Kliurkius 13 नवम्बर 2020, 22:05

1 उत्तर

सबसे बढ़िया उत्तर

मैं आपको एक ऐरेलिस्ट का उपयोग करने की सलाह दूंगा, क्योंकि यह सूची के भीतर से तत्वों को हटाने के तरीके प्रदान करता है (जागरूक रहें, क्योंकि यह एक बड़ी सरणी में काफी महंगा हो सकता है)। रिमूव () विधि निकालने के लिए ऑब्जेक्ट का इंडेक्स ले सकती है या ऑब्जेक्ट को खुद को हटाने के लिए, क्योंकि मेथड ओवरलोड है। सावधान रहें, क्योंकि बैग में तत्व की अनुक्रमणिका रखने वाले int को संग्रहीत करने के परिणामस्वरूप अप्रत्याशित परिणाम हो सकते हैं, जैसा कि यह हो सकता है, कि यह अनुक्रमणिका आपके द्वारा संग्रहीत किए जाने के बाद किसी ऑब्जेक्ट को निकालने के बाद गलत ऑब्जेक्ट को इंगित करती है। सूचकांक।

तो, मुझे आशा है कि यह उत्तर आपकी सहायता करेगा।

0
Budschie 13 नवम्बर 2020, 19:16