2013-04-19 4 views
0

나는 하나의 문자열 arraylist 값을 다른 정수 arraylist 값을 대처하고있다, 나는 중복 코드를 사용하여 복사를 원한다. 여기서 실수하나의 문자열 arraylist 값을 다른 정수에 추가하는 방법 안드로이드에 중복 된 값을 가진 arraylist

ShootAndCropActivity.class ... 저를 제안 않았다 위 multimeaning의 ArrayList를에서

public class ShootAndCropActivity extends Activity { 

/** Called when the activity is first created. */ 
static Vector<Integer> genrated4=new Vector<Integer>(); 
static ArrayList<String> genratednew=new ArrayList<String>(); 
static ArrayList<String> multimeaning=new ArrayList<String>(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    multimeaning.add("radha"); 
    multimeaning.add("swathi"); 
    multimeaning.add("sudha"); 
    multimeaning.add("sai"); 
    multimeaning.add("jyothi"); 
    multimeaning.add("radha"); 

    Random random4 = new Random();   
    for (int i4 = 0; i4<multimeaning.size(); i4++){ 
     int randomNumber4 = random4.nextInt(multimeaning.size()); 
     String mn1=String.valueOf(multimeaning.get(randomNumber4)); 

     if(!genratednew.contains(mn1)) { 
      genratednew.add(mn1); 
      genrated4.add(randomNumber4); 
     } 
    } 
} 
} 

, 나는 6 개 이름이 있습니다. 목록에서 하나의 값 "radha"가 2 번 있습니다. 그래서 저는 모든 multimeaning arraylist 요소를 다른 정수 arraylist에 추가하려고합니다. 하지만 그 모든 가치를 복사하지, 나는 내가 명령을 원하는 순서를 원하기 때문에, 나는 바셋을하지 않습니다 ...

+0

주문을 유지하려면 왜 '랜덤'을 사용하고 있습니까? –

답변

0

당신은 순서대로 모든 것을 원하고 바로 다음 Random을 사용하지 않는 중복 값을 건너 뛰려.

그냥 내가 도움이 될 희망

for (int i4 = 0; i4<multimeaning.size(); i4++){ 
    String mn1=String.valueOf(multimeaning.get(i4)); 

    if(!genratednew.contains(mn1)) { 
     genratednew.add(mn1); 
     genrated4.add(i4); 
    } 
} 

에 다음 코드를

Random random4 = new Random();   
for (int i4 = 0; i4<multimeaning.size(); i4++){ 
    int randomNumber4 = random4.nextInt(multimeaning.size()); 
    String mn1=String.valueOf(multimeaning.get(randomNumber4)); 

    if(!genratednew.contains(mn1)) { 
     genratednew.add(mn1); 
     genrated4.add(randomNumber4); 
    } 
} 

교체!

+0

좋아, 나는 임의의 행동도 원한다. 나는 단지 arralist의 첫 번째 postion 값을 변경하고 싶지 않다. 나는 모든 임의의 방법을 선택할 필요가있다. – radha

+0

becz 나는 퀴즈 게임을하고있다. 나는 이미 ans를 알고있다. 그 대답을 arraylist, reamin 모든 옵션을 무작위로 대답을 표시 할 때마다 나는 – radha

+0

귀하의 right.i 그냥 추가 배열 geniplenew 배열 및 매번 copying.now 작업에 대한 추가 답변 후 multifening 배열을 뒤섞이 필요가 – radha

0

설정을 사용할 수 있습니다. 집합은 고유 한 항목 모음입니다. 중복이 없습니다. 당신은 arraylist에서 중복을 제거하기 위해 아래를 사용할 수 있습니다. 그에 따라 복사하십시오.

static ArrayList<String> multimeaning=new ArrayList<String>(); 
Set<String> hs = new LinkedHashSet<String>(); 
// maintains insertion order and will have unique collection of items 
hs.addAll(multimeaning); 
multimeaning.clear(); 
multimeaning.addAll(hs); 
+0

감사합니다. hasset에 데이터를 추가하면 시간 요소 순서가 바뀔 것입니다.하지만 같은 순서를 원합니다. – radha

+0

@radha 같은 순서로 어떤 순서로 주문 하시겠습니까? 만약 내가 올바르게 이해가 무작위로 생성 된 주문 –

+0

@ radha는 연결된 hashset을 사용하여 삽입 순서를 유지합니다. – Raghunandan

관련 문제