java中数组的基本操作

在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。

1. 数组的复制:System.arraycopy()。
如:
 int [ ] str1 = new int[ ]{1,2,3};
 int[ ] str2 = new int[3]; //指向同一个引用地址
 System.arraycopy(str1,0,str2,0,str1.length); //源组数str1,从str1的第1个位置开始,拷贝到目标数组str2中,存放的位置,从str2的第一个位置开始,存放的总共长度是3(也可以用str1.length表示)。

注意:如果是对象数组,或其它引用类型,当目标数组的值发生变化时,源数组的值也发生了变化。


2. 数组的排序:Arrays.sort()。 (在java.util包中)
如:
 int[ ] num=new int[ ]{3,1,2};
  Arrays.sort(num);
  for(int i=0;i<num.length;i++)
  {
   System.out.println(num[i]); //输出1,2,3,按降序排列。
  }
如果参与排序的是对象,则该对象必须实现Comparable 接口,通过方法compareTo来比较对象参与排序的元素。
如下所示:

  Student[] ss=new Student[]{new Student(1,"zhangsan"),
        new Student(2,"lisi"),
        new Student(3,"wangwu"),
        new Student(3,"mybole")};
  Arrays.sort(ss);
  for(int i=0;i<ss.length;i++)
  {
   System.out.println(ss[i]);
  }
………………………………

Sclass Student implements Comparable
{
 int num;
 String name;
 Student(int num,String name)
 {
  this.num=num;
  this.name=name;
 }
 public String toString()
 {
  return "number="+num+","+"name="+name;
 }
 public int compareTo(Object o)
 {
  Student s=(Student)o;
 // return num>s.num ? 1 : (num==s.num ? 0 : -1);  //按对象的num规则排序
  //以下表示:如果num相等,则按name排序
  int result=num>s.num ? 1 : (num==s.num ? 0 : -1);
  if(0==result)
  {
   result=name.compareTo(s.name);  //String已经实现了compareTo方法
  }
  return result; 
}
}


3. 在已排序的数组中查找某个元素:Arrays.binarySearch()。 
如上面所示的:
  int index=Arrays.binarySearch(num,3); //得到num数组中的数字 3 的索引
  System.out.println("index="+index);  //输出2
  System.out.println("element="+num[index]); //3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值