java 数组Array与集合ArrayList,集合

数组Array的整理:

package com.company;

//===============================数组===========================================

/*
数组:
    一种容器,可以同时存放多个数据值
    是引用类型
    数组中的多个数据,类型必须统一
    数组长度在程序运行期间不可改变

声明数组:
    double[] a;   //声明数组a(首选的声明方法)
    double a[];   //声明数组a(风格是来自 C/C++ 语言,不是首选方法)

创建数组:
    动态初始化数组:
        double[] myList = new double[5]   //创建一个可以存5个double类型的数据的myList数组,其实是myList在堆中创建了,new double[5]在
        栈中创建,然后new double[5]在栈中创建地址给myList
            可拆分:double[] myList;
                   myList = new double[5];
    静态初始化数组:
        double[] myList = {1.9, 2.9, 3.4, 3.5}  //创建一个有1.9,2.9等数据的myLIst数组
        double[] myList = new double[] {1.9, 2.9, 3.4, 3.5}  //创建一个有1.9,2.9等数据的myLIst数组
            可拆分:double[] myList;
                  myList = new double[] {1.9, 2.9, 3.4, 3.5};

    获取数组中某个值:
        myList[0] //索引从0开始

一个数组等于另一个数组,这个数组是指向那个数组的地址:
    数组err2等于err1,即err2和err1是指向同一个地址,不管修改了谁,另一个都会跟着变化
    public static void main(String[] args){
         int[] arr1 = new int[3];
            arr1[1] = 3;
            System.out.println(arr1[1]);

            int[] arr2 = arr1;
            System.out.println(arr2[1]);
            arr2[1] = 30;
            System.out.println(arr2[1]);

            System.out.println(arr1[1]);
     }
数组案例:
    double[] myList = new double[size]
            double[] myList = {1.9, 2.9, 3.4, 3.5};
            // 数组大小
            int size = 10;
            // 定义数组myList
            double[] myList = new double[size];  //给double[size]创建一个数组,等价于double[] myList = {1.9, 2.9, 3.4, 3.5};
            //给数组赋值
            myList[0] = 5.6;
            myList[1] = 4.5;
            myList[2] = 3.3;
            myList[3] = 13.2;
            myList[4] = 4.0;
            myList[5] = 34.33;
            myList[6] = 34.0;
            myList[7] = 45.45;
            myList[8] = 99.993;
            myList[9] = 11123;
            // 计算所有元素的总和
            double total = 0;
            for (int i = 0; i < size; i++) {
               total += myList[i];
            }
            System.out.println("总和为: " + total);  //总和为: 11367.373

数组在初始化时,会为存储空间添加默认值:
    整数:0
    浮点数:0.0
    布尔值:false
    字符:空字符
    引用数据类型:null
        public static void main(String[] args){
        //数字 输出 0 0 0
        int[] arr = new int[3];
        for (Integer i: arr
             ) {
            System.out.println(i);
        }

        //字符 输出
        char[] Str = new char[3];
        for (char i: Str
        ) {
            System.out.println(i);
        }
    }

处理数组:
    数组的元素类型和数组大小都是确定的,所以处理数组元素时候,通常使用基本循环或者 For-Each 循环
      double[] myList = {1.9, 2.9, 3.4, 3.5};
      // 打印所有数组元素
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // 计算所有元素的总和
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // 查找最大元素
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);

for-each循环处理数组:
     double[] myList = {1.9, 2.9, 3.4, 3.5};
      // 打印所有数组元素
      for (double element: myList) {  //数组的每个元素为element
         System.out.println(element);
      }

多维数组:
    可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
    String[][] str = new String[3][4];      //二维数组str String可以是基本数据类型,复合数据类型,3和4必须是正整数,3是行数,4是列数
    从最高维开始,分别为每一维分配空间:
        String[][] s = new String[2][];
        s[0] = new String[2];   //为最高维分配引用空间
        s[1] = new String[3];
        s[0][0] = new String("Good");   //再为其每个数组元素单独分配空间
        s[0][1] = new String("Luck");
        s[1][0] = new String("to");
        s[1][1] = new String("you");
        s[1][2] = new String("!");

    取二维数组每个元素:
        num[1][0];

Arrays类:
    java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的
        给数组赋值:通过 fill 方法。
        对数组排序:通过 sort 方法,按升序。
        比较数组:通过 equals 方法比较数组中元素值是否相等。
        查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

 */

public class Arraya {


}

在这里插入图片描述
在这里插入图片描述

ArrayList的整理:

package com.company;

//===============================ArrayLista===========================================

/*
ArrayList 类:
    是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素

    引入 ArrayList 类:
        import java.util.ArrayList;
    初始化:
        ArrayList<E> objectName =new ArrayList<>();   //E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。 objectName: 对象名。
        List<E> objectName = new ArrayList<>();   //多态写法,List是ArrayList的父类

    ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能

    添加add() 访问get() 修改set() 删除remove() 计算元素数量size() 迭代数组列表中的元素for()或for-each()import java.util.ArrayList;     //引入 ArrayList 类:
        public class RunoobTest {
            public static void main(String[] args) {
                ArrayList<String> sites = new ArrayList<String>();  //初始化ArrayList的sites
                sites.add("Google");        //给sites对象 添加 数据
                sites.add(1,"abc");      //给sites对象 的第1个索引添加 数据 (索引从0开始)
                sites.add("Runoob");
                sites.add("Taobao");
                sites.add("Weibo");
                System.out.println(sites);
                System.out.println(sites.get(1));  // 访问第二个元素
                sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
                sites.remove(3); // 删除第四个元素
                sites.remove("abc"); // 删除 对象中的 abc 元素
                System.out.println(sites.size());  //计算元素数量
                for (int i = 0; i < sites.size(); i++) {    // for 来迭代数组列表中的元素
                    System.out.println(sites.get(i));
                }
                for (String i : sites) {        // for-each 来迭代数组列表中的元素
                    System.out.println(i);
                }
            }
        }

    ArrayList<Integer> li=new Arraylist<>();     // 存放整数元素
    ArrayList<Character> li=new Arraylist<>();   // 存放字符元素
    基本类型	引用类型
    boolean	Boolean
    byte	Byte
    short	Short
    int	Integer
    long	Long
    float	Float
    double	Double
    char	Character

    ArrayList 排序:
        Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
        import java.util.ArrayList;
        import java.util.Collections;  // 引入 Collections 类
        public class RunoobTest {
            public static void main(String[] args) {
                ArrayList<String> sites = new ArrayList<String>();
                sites.add("Taobao");
                sites.add("Wiki");
                sites.add("Runoob");
                sites.add("Weibo");
                sites.add("Google");
                Collections.sort(sites);  // 字母排序
                for (String i : sites) {
                    System.out.println(i);
                }
            }
        }


 */
public class ArrayLista {
}

集合:

在这里插入图片描述
集合类型主要有3种:set(集)、list(列表)和map(映射)。

Collection集合:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

List集合:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Iterator迭代器和for循环遍历集合:
在这里插入图片描述
在这里插入图片描述
ListLterator列表迭代器遍历集合:
在这里插入图片描述
增强for循环遍历集合:
在这里插入图片描述

栈与队列:

在这里插入图片描述
在这里插入图片描述

数组:

在这里插入图片描述

链表:

在这里插入图片描述

List集合的子类ArrayList与LinkedList:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Set集合:

在这里插入图片描述
在这里插入图片描述

哈希值:

在这里插入图片描述

在这里插入图片描述

HashSet集合:

在这里插入图片描述
在这里插入图片描述

LinkedHashSet集合:

在这里插入图片描述
在这里插入图片描述

TreeSet集合:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Map集合:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Map集合的遍历1:
在这里插入图片描述
在这里插入图片描述

Map集合的遍历2:
在这里插入图片描述
在这里插入图片描述

HashMap集合的创建,遍历:

在这里插入图片描述
加强:

ArrayList集合嵌套HashMap集合的创建与遍历:

在这里插入图片描述

HashMap集合嵌套ArrayList集合的创建与遍历:

在这里插入图片描述

Collections类(Collection集合区分好):

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值