比如我有一个字符串数组 String[] sills = {"java","c++","php"};
之后有另外一个字符串数组变量 String[] order;  我想把sills这个字符串的元素都赋值给order,但是当我对order数组操作时,不会对sills有影响,怎么给order赋值?

解决方案 »

  1.   

    for(int i=0;i<sills.length;i++) {
        order[i]=sills[i]
    }对order操作本来就不会影响sills的 
      

  2.   

    public class T {
    public static void main(String[] args) {
    String[] sills = {"java","c++","php"};
    String[] order = new String[sills.length];
    for(int i=0; i<sills.length; i++) {
    order[i] = sills[i];
    }
    order[0] = "test";
    for(int i=0; i<sills.length; i++)
    System.out.println(sills[i]);
    for(int i=0; i<order.length; i++)
    System.out.println(order[i]);
    }
    }
      

  3.   


    String[] str1={"good","end"};

    String[] str2=str1.clone();//str1的一个副本

    str2[1]="good";

    for(String str:str1)
    System.out.println(str);

    for(String str:str2)
    System.out.println(str);
      

  4.   

    调用Object类中clone()方法时,首先在内存中划分一块同原对象相同的空间,然后将原对象的内容原样拷贝至新对象。我们知道,java中有基本数据类型,对于基本数据类型,这样的操作是没有问题的,但对非基本类型变量,它们保存的仅仅是对象的引用,这也是为什么clone后非基本类型变量和原对象中的变量指向同一个对象的原因。可能你已经注意到,程序中用到了String类型,即对象,为什么没有出现引用指向同一地址的情况?这是因为String是一个不可更改的类(immutableclass),每次给它赋值时,都会产生一个新的String对象。如Stringstr="a";str+="b";在这两句代码中,当执行str+="b"时,实际上是重新成生了一个值为"ab"的String对象,即重新分配了一块内存空间。以上clone方法通常被称为"影子clone"。"影子clone"给我们留下了一个问题,即多个引用指向同一个对象。如何解决该问题呢?答案为"深度clone"。PS:http://cn-done.javaeye.com/blog/477609
      

  5.   

    String[] sills = {"java","c++","php"};
    String[] order = sills.clone();
      

  6.   

    System.arraycopy(src, srcPos, dest, destPos, length);用这个就可以了!
      

  7.   

    刚刚那个方法的参数说明:System.arraycopy(源数组, 源数组中的起始位置, 目标数组, 目标数据中的起始位置, 要拷贝的长度);
      

  8.   

    用 clone()方法应该可以:
           String[] sills = {"java","c++","php"};
            String[] order = sills.clone();
    你可以去查一下 clone()的用途……
      

  9.   


    这个就够了吧!protected Object clone()
    返回:
      此实例的一个副本。 
      

  10.   

    for(int i=0; i<sills.length; i++) {
                order[i] = sills[i];
            }
    我想这样应该就可以吧
      

  11.   

            String[] sills = {"java","c++","php"};
            String[] order = sills.clone();