zoukankan      html  css  js  c++  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()方法时,数组就和列表链接在一起了。当更新其中之一时,另一个将自动获得更新。注意:仅仅针对对象数组类型,基本数据类型数组不具备该特性 。

    Link:http://blog.csdn.net/cntanghai/article/details/7188296

    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 () 方法来删除包含在另外一个数组中的数组元素——求交集

    http://www.runoob.com/java/arrays-retainall.html

    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? : true
    objArray2 是否包含数组 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<String> list=new ArrayList<String>();
    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(int i : arr){
         System.out.println(i);
    }
  • 相关阅读:
    [RxJS] Combination operators: concat, startWith
    [RxJS] Filtering operators: skipWhile and skipUntil
    [RxJS] Filtering operators: takeUntil, takeWhile
    [RxJS] Filtering operators: takeLast, last
    强连通tarjan模版
    HDU 4576 Robot (概率DP)
    Inside GDALAllRegister之二: 自动加载驱动
    [置顶] Java中字符串为什么不以结尾
    rcp(插件开发) The 'Eclipse-LazyStart' header is deprecated, use 'Bundle-ActivationPolicy'
    如何在模板中引用参数类中的一个特定member
  • 原文地址:https://www.cnblogs.com/misybing/p/4804951.html
Copyright © 2011-2022 走看看