zoukankan      html  css  js  c++  java
  • java之数组与集合

    数组:

      数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。

    1、创建数组

      数组变量的声明,和创建数组可以用一条语句完成,如下所示:
      DataType[] array = new DataType[arraySize];

      另外,你还可以使用如下的方式创建数组。
      DataType[] array = {value0, value1, ..., valuek};

    代码示例:

     1 public class TestArray {
     2     public static void main(String[] args) {
     3       // 数组大小
     4       int size = 10;
     5       // 定义数组
     6       double[] myList = new double[size];
     7       myList[0] = 5.6;
     8       myList[1] = 4.5;
     9       myList[2] = 3.3;
    10       myList[3] = 13.2;
    11       myList[4] = 4.0;
    12       myList[5] = 34.33;
    13       myList[6] = 34.0;
    14       myList[7] = 45.45;
    15       myList[8] = 99.993;
    16       myList[9] = 11123;
    17       // 计算所有元素的总和
    18       double total = 0;
    19       for (int i = 0; i < size; i++) {
    20          total += myList[i];
    21       }
    22       System.out.println("总和为: " + total);
    23     }
    24 }
    25     

    运行结果为:

    总和为: 11367.373

    2、多维数组

    多维数组可以看成是数组的数组,比如二维数组,其每一个元素都是一个一维数组,例如:

     1 //定义一个二维数组,其可以看成一个三行两列的数组。
     2 String[][] str = new String[3][2];
     3 
     4 //初始化数组
     5 //第一种方式
     6 str[0] = {"a","b"};
     7 str[1] = {"一","二"};
     8 str[2] = {"xx","<??"};
     9 //第二种方式
    10 str[0][0] = new String("Go");
    11 str[0][1] = new String("Lu");
    12 str[1][0] = new String("to");
    13 str[1][1] = new String("fo");
    14 str[2][0] = new String("我们");
    15 str[2][1] = new String("!");

    3、Array 类

    Array 类提供了动态创建和访问 Java 数组的方法。其构造方法私有化所以不能被实例化,类被final修饰所以不能被继承。

    代码示例:

     1 public class Test3 {
     2     public static void main(String[] args) {
     3       //创建一个数组
     4       String[] strArray = (String[]) Array.newInstance(String.class, 3);
     5       //往数组里添加元素
     6       Array.set(strArray, 0, "wo");
     7       Array.set(strArray, 1, "哈哈");
     8       Array.set(strArray, 2, "123");
     9       System.out.println("Array.get()获取元素 >>"+Array.get(strArray, 1));
    10       System.out.println("Arrays 将数组转成字符串 >>"+Arrays.toString(strArray));
    11     }
    12 }    

    运行结果为:

    Array.get()获取元素 >>哈哈
    Arrays 将数组转成字符串 >>[wo, 哈哈, 123]

    4、Arrays 类

    此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。其比 Array 类更加灵活,在对数组操作时使用较多。

    • 给数组赋值:通过 fill 方法。
    • 对数组排序:通过 sort 方法,按升序。
    • 比较数组:通过 equals 方法比较数组中元素值是否相等。
    • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
     1 //数组赋值
     2 public static void main(String[] args) {
     3     Integer[] array = new Integer[5];
     4     Arrays.fill(array,0,3,9); // 给数组下标 0~2的元素填充9
     5     System.out.println(Arrays.toString(array));  // 输出[9, 9, 9, null, null]
     6 }
     7 
     8 //数组排序
     9 public static void main(String[] args) {
    10     int[] array = {3,2,1,4,5};
    11     Arrays.sort(array);  // 从小到大排序
    12         //Arrays.sort(array, Collections.reverseOrder());  // 从大到小排序
    13     System.out.println(Arrays.toString(array));  
    14     // 输出 [1, 2, 3, 4, 5]
    15 }
    16 
    17 //数组比较,适用于一维数组
    18 public static void main(String[] args) {
    19         int[] array1 = {1,2,3};
    20         int[] array2 = {1,2,3};
    21         int[] array3 = {1,2,4};
    22         System.out.println(Arrays.equals(array1,array2));  //数组的比较,返回true
    23         System.out.println(Arrays.equals(array1,array3));  //数组的比较,返回false
    24     }
    25 
    26 //查找数组元素
    27 public static void main(String[] args) {
    28     Integer[] array = {1,2,3,4,5};
    29     //binarySearch使用二分搜索法来搜索指定数组(排序后的数组,否则结果不准确)
    30     //参数为要搜索的数组 要搜索的元素,返回值为元素在数组内的的下标
    31     System.out.println(Arrays.binarySearch(array, 2));  // 输出 1
    32 }
    33 
    34 //上面只是列举了一些Arrays的方法,它还有很多实用的方法

     集合:

    本篇集合的内容主要为其基础用法,详细内容请参考:

    https://www.cnblogs.com/ymzsb/p/14887610.html

    java中集合是采用不同数据结构实现的存放数据的容器。其分为单例集合Collection、双列集合Map

    • Collection:是单列集合的顶层接口,其下经常使用的有List(有序集合)、Set(无序集合)。
    • Map:是双列集合的顶层接口,经常使用的实现类有HashMap、LinkedHashMap、Hashtable。

    1、ArrayList

    ArrayList实现了List接口,其是开发中最常使用的List实现类。使用示例:

     1 import java.util.ArrayList;
     2 
     3 public class RunoobTest {
     4     public static void main(String[] args) {
     5         //创建一个 ArrayList 其泛型为 String ,在创建集合时泛型必须为引用数据类型
     6         ArrayList<String> sites = new ArrayList<String>();
     7         //1.添加元素
     8         sites.add("Google");
     9         sites.add("Runoob");
    10         sites.add("Taobao");
    11         sites.add("Weibo");
    12         //输出 [Google, Runoob, Taobao, Weibo]
    13         System.out.println(sites);
    14         //2.访问元素      
    15         //参数为元素下标,执行结果,输出 Runoob
    16         System.out.println(sites.get(1));  
    17         //3.设置元素
    18         //第一个参数为索引位置,第二个为要修改的值
    19         sites.set(2, "Wiki"); 
    20         //输出结果为 Wiki
    21         System.out.println(sites.get(2));
    22         //4.删除元素
    23         String site = sites.remove(3); 
    24         //已经删除的元素,输出结果 Weibo
    25         System.out.println(site);
    26         //输出结果为[Google, Runoob, Taobao]
    27         System.out.println(sites);
    28     }
    29 }

    2、HashSet

    HashSet实现了 Set 接口,其是开发中比较常用的 Set 实现类。使用示例:

     1 // 引入 HashSet 类      
     2 import java.util.HashSet;
     3 
     4 public class RunoobTest {
     5     public static void main(String[] args) {
     6         //创建一个 HashSet 其泛型为 String 
     7         HashSet<String> sites = new HashSet<String>();
     8         sites.add("Google");
     9         sites.add("Runoob");
    10         sites.add("Taobao");
    11         sites.add("Zhihu");
    12         // 重复的元素不会被添加
    13         sites.add("Runoob"); 
    14         //输出 [Runoob, Taobao, Zhihu, Google]
    15         System.out.println(sites);
    16         //判断元素是否存在  输出true
    17         System.out.println(sites.contains("Taobao"));
    18         // 删除元素,删除成功返回 true,否则为 false
    19         sites.remove("Taobao");  
    20         //输出 [Google, Runoob, Zhihu]
    21         System.out.println(sites);
    22     }
    23 }

    3、HashMap

    HashMap实现的 Map 接口,它存储的内容是键值对(key-value)映射。在开发中经常使用的 map 实现类,使用示例:

     1 // 引入 HashMap 类      
     2 import java.util.HashMap;
     3 
     4 public class RunoobTest {
     5     public static void main(String[] args) {
     6         // 创建 HashMap 对象 Sites
     7         HashMap<Integer, String> Sites = new HashMap<Integer, String>();
     8         //1.添加元素      添加键值对
     9         Sites.put(1, "Google");
    10         Sites.put(2, "Runoob");
    11         Sites.put(3, "Taobao");
    12         Sites.put(4, "Zhihu");
    13         //输出 {1=Google, 2=Runoob, 3=Taobao, 4=Zhihu}
    14         System.out.println(Sites);
    15         //2.访问元素  
    16         //输出  Taobao
    17         System.out.println(Sites.get(3));
    18         //3.删除元素
    19         Sites.remove(4);
    20         //输出  {1=Google, 2=Runoob, 3=Taobao}
    21         System.out.println(Sites);
    22         //map的大小 
    23         System.out.println(Sites.size());
    24     }
    25 }
  • 相关阅读:
    android 模拟点击事件
    IGZO显示屏
    java 代码混淆
    android 模拟点击3
    android 文件读写
    android 抓包 tcpdump
    pathon 2
    conversion to dalvik format failed with error 1
    zipalign
    android 来电状态
  • 原文地址:https://www.cnblogs.com/ymzsb/p/14883919.html
Copyright © 2011-2022 走看看