2010-07-08 6 views
2

한 페이지에서 다른 페이지로 값을 보내고 있습니다. 내가 보낸 값을 저장하고 싶습니다. &은 다음 값을 비교하고 싶습니다. 내가 hav 이미 보낸 즉, 저장 value.while 배열을 영구적 인 개체에 값을 저장 & 다음 다른 배열 값을 비교, 나는 몇 가지 prob에 직면, 아무도 가치가 이미 배열에서 종료 여부를 확인하는 방법을 말해 줄 수, 나는 Arrays.binarySearch 배열이 주어진 비교 요소가있는 경우에 당신이 찾는 데 도움이 될 수 있습니다 생각 친절요소가 이미 배열에 있는지 여부를 확인하는 방법

package com.firstBooks.series.db; 

import java.util.Random; 

import net.rim.device.api.system.PersistentObject; 
import net.rim.device.api.system.PersistentStore; 
import net.rim.device.api.util.Arrays; 
import net.rim.device.api.util.Persistable; 
import com.firstBooks.series.db.parser.XMLParser; 
import com.firstBooks.series.ui.managers.TopManager; 
import com.firstBooks.series.ui.screens.TestScreen; 
public class DBMain implements Persistable{ 

    public static String answer = ""; 
    public static String selectedAnswer = ""; 
    public static Question curQuestion; 

    public static int currQuesNumber = 1; 
    public static int correctAnswerCount = -1; 
    static int curQuesnew; 
    static int quesCount=-1; 
    static int xyz; 
    static int j=0; 
    public static int totalNumofQuestions = Question.totques; 
    public static int quesNum[] = new int[XMLParser.questionList.size()]; 
    static PersistentObject qStore; 
    static PersistentObject curQues; 
    static PersistentObject pQues; 
    static PersistentObject curans; 
    static PersistentObject disques; 
    static PersistentObject restques; 
    static int a ; 
    static int b; 
    static int[] c ; 
    static int[] d ; 
    static int pques; 
    static int cans; 
    static int[] dques; 
    static int[] rques; 

    static { 
     qStore = PersistentStore.getPersistentObject(0x33010065d24c7883L); 
     curQues = PersistentStore.getPersistentObject(0x33010064d24c7883L); 
     pQues = PersistentStore.getPersistentObject(0xbd7460a5b4f9890aL); 
     curans = PersistentStore.getPersistentObject(0xc5c065a3ae1bec21L); 
     disques = PersistentStore.getPersistentObject(0xbf8118045165a07aL); 
    } 

    static{ 
     initialize(); 
    } 


    public static void initialize() { 

     //int quesNum[] = new int[XMLParser.questionList.size()]; 

     Random rgen = new Random(); // Random number generator 
     //int a=Integer.parseInt(TopManager.quesNumber); 
     //System.out.println("The value of AAAAAAA is...."+a); 
     // --- Initialize the array 
     for (int i = 0; i < quesNum.length; i++) { 
      quesNum[i] = i; 
     } 

     // --- Shuffle by exchanging each element randomly 
     for (int i=0; i< quesNum.length; i++) { 
      int randomPosition = rgen.nextInt(quesNum.length); 
      int temp = quesNum[i]; 
      quesNum[i] = quesNum[randomPosition]; 
      quesNum[randomPosition] = temp; 

     } 

      synchronized (qStore) { 

      qStore.setContents(quesNum); 
     qStore.commit(); 
     } 
     } 


    public static int getQuestionNumber() { 


     //int quesCount; 
      //quesCount++; 
     //synchronized (curQues) { 
      //quesCount = Integer.parseInt((String)curQues.getContents()); 
     //} 
      quesCount++; 
      synchronized (curans) { 

       int b=Integer.parseInt(TopManager.corrCount); 
       curans.setContents(b+""); 
       curans.commit(); 

      } 
    //int quesNum[]; 

     synchronized (qStore) { 
      quesNum=(int[]) qStore.getContents(); 
      System.out.println("The value of question is ...."+quesNum.length); 
    } 


     synchronized (pQues) { 

      int a=Integer.parseInt(TopManager.quesNumber); 
      pQues.setContents(a+""); 
      pQues.commit(); 

     } 

     if (quesNum!=null && quesCount < quesNum.length) { 

      synchronized (curQues) { 

       curQuesnew=quesNum[quesCount]; 
       curQues.setContents(curQuesnew+""); 
       curQues.commit(); 
      } 

      synchronized (disques) { 
      c[j]=TestScreen.quesNumber; 
      System.out.println("Astala vistaaaaaaaaaaaaa"+c); 
       disques.setContents(c+""); 
       disques.commit(); 
       } 
      synchronized (disques) { 
       dques[j]=Integer.parseInt((String)disques.getContents()); 
       System.out.println("valueee is.........."+dques); 
      } 

     for(int k=0;k<dques.length;k++){ 
     if(quesNum[quesCount]!=dques[k]){ 
     System.out.println("ghijyghfhgfhfhgfhgfhgfhgfhgddkjklmn"); 
      xyz=quesNum[quesCount]; 
     } 
     j++; 
     } 


     return xyz; 


    } else { 
      initialize(); 
      quesCount = -1; 
      return getQuestionNumber(); 
     } 

    } 


    public static int getpresentQuestionNumber(){ 


     synchronized (pQues) { 
      pques=Integer.parseInt((String)pQues.getContents()); 

    } 
     return pques; 
} 

    public static int getCorrectanswerNumber(){ 
    synchronized (curans) { 
      cans=Integer.parseInt((String)curans.getContents()); 
      } 
     return cans; 
} 



    public static int getCurrQuestionNumber() { 
     synchronized (curQues) { 
      return Integer.parseInt((String)curQues.getContents()); 
      //return curQuesnew; 
      //curQuesnew=(int[]) curQues.getContents(); 
      //return curQuesnew[quesCount]; 
     } 
    } 
} 

답변

2

도움이 코드를 제공하고 있습니다.

그러나 배열을 다양한 Java 모음 중 하나로 대체하는 것이 좋습니다.

Michael의 의견에 따르면, Snoracle doc은 정확하지 않았습니다. 나는 링크 대상을 블랙 베리 문서로 변경했다. 마이클에게 감사드립니다.

+0

을 비교할 수 있습니다. 따라서 BlackBerry 설명서와 연결하면 도움이되지 않습니다. .0api/index.html –

2

정말 배열을 사용해야합니까? 값이 이미 많이 있는지 확인하려면이 구조를 사용하면 HashSet, TreeSet, HashMap 등의 구조를 사용하는 것이 좋습니다.

1

다음과 같이 작성할 수 있습니다. :

for(int i=0; i< array.length; i++) { 
    if(value.equals(array[i])) { 
     return true; 
    } 
    } 

    return false; 

하지만 ArrayList 또는 개체를 비교할 수있는 contains 방법이있다 Vector이 할 수있는 또 다른 방법이있다. 값이 어레이에있는 경우

10

한가지 방법은 확인 : 나 U라면

Arrays.asList(someArray).contains(value); 
+0

실적에 영향을 미칠 수 있다고 생각하지 않습니까? – Akhilesh

0

, 난 벡터사용이 배열보다 더 유연하기 때문이다. 이 방법으로 간단하게 Yourvector.equal(V1)을 사용하여 YourvectorV1

관련 문제