2012-01-29 17 views
7

से एक यादृच्छिक मान का चयन करें मेरे पास संख्या मानों का ऐरे है, और मैं उस सरणी में यादृच्छिक रूप से एक मान का चयन करना चाहता हूं और फिर उसे int चर में डालना चाहता हूं।ऐरे

मुझे यकीन नहीं है कि आपको कौन सा कोड देखना होगा। तो,

यहां for लूप है जिसका उपयोग मैं 13 संख्याओं (1-13) उत्पन्न करने और उन्हें ऐरे में डालने के लिए उपयोग कर रहा हूं।

int clubsArray []; 
    clubsArray = new int [13]; 

    for(int i = 0; i < clubsArray.length; i++) { 

     clubsArray[i] = i +1; 

    } 

कि ठीक काम करता है, लेकिन अब मैं उदाहरण के लिए कि सरणी में से 2 यादृच्छिक मानों का चयन करें (और फिर एक चर में सम्मिलित करने के लिए की जरूरत है पर बाद में प्रयोग की जाने वाली।

मैं चारों ओर देखा है कई वेबसाइटों पर और मैंने ArrayList<String> जैसी चीजों को एक ऐरे में मान डालने के लिए देखा है और फिर सरणी से मूल्य का चयन करने के लिए Random generator = new Random() का उपयोग करें और फिर .remove() को सरणी से निकालने के लिए उपयोग करें। लेकिन जब कभी मैंने इसका उपयोग किया है काम नहीं।

+0

आप वास्तव में एक इंटरेबल में "सम्मिलित" नहीं करते हैं, बल्कि "असाइन करें" :) –

+0

संभावित डुप्लिकेट [संख्याओं की सूची से जावा के साथ यादृच्छिक संख्या कैसे उत्पन्न करें] (http://stackoverflow.com/प्रश्न/1247915/कैसे-से-जेनरेट-ए-यादृच्छिक-संख्या-जावा-से-दी गई-सूची-संख्याओं के साथ) – Mark

उत्तर

24

बस clubsArray[new Random().nextInt(clubsArray.length)] काम करेगा

या तत्वों के क्रम को यादृच्छिक बनाने के लिए, List<?> clubsList=Arrays.asList(clubsArray); Collections.shuffle(clubsList); का उपयोग करें।

+0

धन्यवाद। अगर मैं इसका इस्तेमाल करना चाहता था, तो क्या मुझे इसे ऐरे से भी हटा देना चाहिए? (बाद के चरण में डुप्लिकेट चुने जाने से रोकने के लिए) – Craig

+0

@ क्रैग: किसी सरणी में तत्व को निकालना ओ (एन) है, तो हो सकता है कि आप ऐसा नहीं करना चाहते हैं। हो सकता है कि आप पहले पूरी सरणी को घुमाएं? (जैसा कि कोई कार्ड के डेक को ढूढ़ता है) [यह] (http://stackoverflow.com/a/6127606/165544) सी – danr

+0

में इसे कैसे करना है, शायद, या इसके बजाय जांच करें कि आउटपुट सरणी में पहले से ही यह है या नहीं , और यदि हां, तो एक और चुना है। –

संबंधित मुद्दे