본문 바로가기

구글과인터넷/안드로이드

안드로이드 객체 복사 또는 배열복사 (자바 포함)

2개의 ArrayList를 복사할 수 있게 하는 방법이 궁금해서 문의합니다.

예를 들어 복사타켓 생성한 ArrayList를 복사대상인 ArrayList로 복사를 어떻게 해야하나요...

private ArrayList<String> 복사타켓 = new ArrayList<String>();

private ArrayList<String> 복사대상 = new ArrayList<String>();



// 복제타켓 배열에 String 추가 시작

for(int i = 0; i < 10; i++)

{

// String 생성

String path = new String();

         

array.add(path);

}

// 복제타켓 배열에 String 추가 종료

private
 ArrayList<String> 
복사타켓 = new ArrayList<String>();

Arrays.clone 메소드가 있습니다
댓글주소 추천 0




 
 


 냉장고안요…  2011-06-09 (목) 11:39
음... ㅠㅠ 사우람님이 댓글 달아주신  "Arrays.clone"를 어떻게 사용해야하는지 잘 이해가 안가네요;
댓글주소 추천 0





 
 


 그다지  2011-06-09 (목) 11:42
clone 매서드는 객체 자체를 그대로 복사한 객체... 맞을겁니다.

그걸 형변환해서 바로 대입하시면 됩니다.

array2 = (객체형)array.clone();

아마.. 맞을거에요.

댓글주소 추천 0




 
 


 OSKIller  2011-06-09 (목) 11:44
자바 API문서 보시면 잘 나와있는데...
한글로 번역된 문서도 있고...

object클래스로 나오니 캐스팅 해서 넣으면 되겠네욤

댓글주소 추천 0




 
 


 냉장고안요…  2011-06-09 (목) 12:06
해결 했습니다!!.댓글 달아주신 모두 너무나 감사합니다>!!!!!!!!!!ㅠㅠ
댓글주소 추천 0




 
 


 하솜  2011-06-09 (목) 17:42
 
여기를 보시면 배열에 대해서 부분 복사와 clone에 대한 사용법이 나와있습니다^^








출처: http://blog.naver.com/kimhw9999?Redirect=Log&logNo=90063724347



/**
부분 배열 복사를 위한 System.arraycopy()
**/
public class ArrayCopyMain {
 public static void main(String[] args) {
  int[] source  = new int[]{5, 4, 6, 9, 7, 9};
  int[] target = {100, 200, 300, 400, 500, 600,700};
  //부분 배열 복사의 예
  System.arraycopy(source, 2, target, 3, 4);   //source의 2번부터 target의 3번을 시작으로 4개의 요소를 복사
  for(int i=0; i<target.length; i++) {
   System.out.println("target["+i+"]:" + target[i]);
  }
 } 

/***
c:\javasrc\chap06>javac ArrayCopyMain.java
c:\javasrc\chap06>java ArrayCopyMain
target[0]:100
target[1]:200
target[2]:300
target[3]:6
target[4]:9
target[5]:7
target[6]:9
***/

 

/////////////////////////////////////////////////////////////////////////////

 

/**
clone()을 이용한 메모리 차원의 배열복사
**/
public class ArrayCloneMain {
 public static void main(String[] args) {
  int[] source  = new int[]{5, 4, 6, 9, 7, 9};
  int[] target = (int[])source.clone();    //clone()을 이용한 메모리 복사
  for(int i=0; i<target.length; i++){
   System.out.println("target["+i+"] : " + target[i]);
  }
 } 

/***
c:\javasrc\chap06>javac ArrayCloneMain.java
c:\javasrc\chap06>java ArrayCloneMain
target[0] : 5
target[1] : 4
target[2] : 6
target[3] : 9
target[4] : 7
target[5] : 9
***/