java中数组查询方法_Java方法-数组

【Java数组】

1. 用sort()方法对Java数组进行排序,及如何使用 binarySearch() 方法来查找数组中的元素

binarySearch()

返回值:

如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)

插入点被定义为将键插入数组的那一点:即第一 个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。

否则返回 (-(插入点) - 1)这句话要注意:要是查询的的值小于数组里面的最小值那么结果(-(0)-1结果就是-1),如果查询的 值大于数组里面的最大值。那么结果就是(-(它的索引值)-1结果就是-(1+索引值))

2. 使用sort()方法对Java数组进行排序,及如何使用 insertElement () 方法向数组插入元素

//  insertElement () 向数组插入元素,自定义方法

System.arraycopy()

System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。

其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。

注意:src and dest都必须是同类型或者可以进行转换类型的数组。

趣的是这个函数可以实现自己到自己复制,比如: int[] fun ={0,1,2,3,4,5,6};

System.arraycopy(fun,0,fun,3,3); 则结果为:{0,1,2,0,1,2,6};

实现过程是这样的,先生成一个长度为length的临时数组,将fun数组中srcPos

到srcPos+length-1之间的数据拷贝到临时数组中,再执行System.arraycopy(临时数组,0,fun,3,3).

3. 使用数组的属性 length 来获取数组的长度

4. Collections.reverse(ArrayList) 将数组进行反转

5. 通过循环输出数组:

/*

author by w3cschool.cc

文件名:Main.java

*/

public class Welcome {

public static void main(String[] args){

String[] greeting = new String[3];

greeting[0] = "This is the greeting";

greeting[1] = "for all the readers from";

greeting[2] = "Java Source .";

for (int i = 0; i < greeting.length; i++){

System.out.println(greeting[i]);

}

}

}

6. 通过 Collection 类的 Collection.max() 和 Collection.min() 方法来查找数组中的最大和最小值

/*

author by w3cschool.cc

文件名:Main.java

*/

import java.util.Arrays;

import java.util.Collections;

public class Main {

public static void main(String[] args) {

Integer[] numbers = { 8, 2, 7, 1, 4, 9, 5};

int min = (int) Collections.min(Arrays.asList(numbers));

int max = (int) Collections.max(Arrays.asList(numbers));

System.out.println("最小值: " + min);

System.out.println("最大值: " + max);

}

}

说明:

asList方法:当使用asList()方法时,数组就和列表链接在一起了。当更新其中之一时,另一个将自动获得更新。注意:仅仅针对对象数组类型,基本数据类型数组不具备该特性 。

7. 通过 List 类的 Arrays.toString () 方法和 List 类的 list.Addall(array1.asList(array2) 方法将两个数组合并为一个数组:

/*

author by w3cschool.cc

文件名:Main.java

*/

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

public class Main {

public static void main(String args[]) {

String a[] = { "A", "E", "I" };

String b[] = { "O", "U" };

List list = new ArrayList(Arrays.asList(a));

list.addAll(Arrays.asList(b));

Object[] c = list.toArray();

System.out.println(Arrays.toString(c));

}

}

8. Array.fill(arrayname,value) 方法和 Array.fill(arrayname ,starting index ,ending index ,value) 方法向数组中填充元素

9. 数组扩容

public class Main {

public static void main(String[] args) {

String[] names = new String[] { "A", "B", "C" };

String[] extended = new String[5];

extended[3] = "D";

extended[4] = "E";

System.arraycopy(names, 0, extended, 0, names.length);

for (String str : extended){

System.out.println(str);

}

}

}

10. 用 sort () 和 binarySearch () 方法来对数组进行排序及查找数组中的元素

11. remove () 方法来删除数组元素

12. removeAll () 方法来计算两个数组的差集

13. removeAll () 方法来删除包含在另外一个数组中的数组元素——求交集

14. contains () 方法来查找数组中的指定元素:

/*

author by w3cschool.cc

文件名:Main.java

*/

import java.util.ArrayList;

public class Main {

public static void main(String[] args) {

ArrayList objArray = new ArrayList();

ArrayList objArray2 = new ArrayList();

objArray2.add(0,"common1");

objArray2.add(1,"common2");

objArray2.add(2,"notcommon");

objArray2.add(3,"notcommon1");

objArray.add(0,"common1");

objArray.add(1,"common2");

System.out.println("objArray 的数组元素:"+objArray);

System.out.println("objArray2 的数组元素:"+objArray2);

System.out.println("objArray 是否包含字符串common2? : "

+objArray.contains("common1"));

System.out.println("objArray2 是否包含数组 objArray? :"

+objArray2.contains(objArray) );

}

}

结果:

objArray 的数组元素:[common1, common2]

objArray2 的数组元素:[common1, common2, notcommon, notcommon1]

objArray 是否包含字符串common2? : trueobjArray2 是否包含数组 objArray? :false

15. equals ()方法来判断数组是否相等

Arrays.equals(ary,ary1));

16.union ()方法求字符串并集

String[]result_union =union(arr1,arr2);

for (a : b) { } // 遍历数组

1.Collection是接口,是容器类的总接口。像那些子接口:set,Queue,List等都继承了这个接口,像实现类:HashSet、ArrayList等都实现了对应的Set、List等接口。

要获取里面的元素很简单,在方法体中,像你代码中的“RosterEntry entry”对象“entry”就是。2.for(:){……}这个是个JDK1.5的增强for循环也叫for-each.是为了方便遍历数组和collection的.由于collection都实现了Iterable(可迭代的)接口,所以可以用for-each来遍历容器类,示例一:

List list=new ArrayList();

list.add("a");

list.add("b");

list.add("c");for(String str : list) {

System.out.println(str);

}

另外我最常用的就是遍历数组,示例二int[] arr = new int[3];

arr[0] = 1;

arr[1] =2;

arr[2] = 3;for(inti : arr){

System.out.println(i);

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值