• Java中 Array、Arrays与ArrayList


    一、Array类

    Array类提供了动态创建和访问Java数组的方法。

    Array 允许在执行 get 或 set 操作期间进行扩展转换,但如果发生收缩转换,则抛出 IllegalArgumentException。 

    例如:下面是一个对象数组

    public class Demo01Array {
        public static void main(String[] args) {
            /*对象数组:定义数组来承载对象
            * 缺点:数组一旦确定长度,不可修改
            * */
            Person[] person = new Person[3];
            Person one = new Person("小明",18);
            Person two = new Person("小李",28);
            Person three = new Person("小张",38);
            person[0] = one;    //地址值
            person[1] = two;    //地址值
            person[2] = three;  //地址值
            System.out.println(person[0].getName());
            System.out.println(person[0].getAge());
        }
    }

    使用到的Person类

    public class Person {
        //属性
        private String name;
        private int age;
        //方法
        public Person() {
        }
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    }

    二、ArrayList类

    1.向ArrayList中添加元素,使用add()方法

    
    
    import java.util.ArrayList;

    public
    class Demo02ArrayList { public static void main(String[] args) { //创建了一个ArrayList集合,集合的名称是list,类型为String //备注:从JDK1.7+右边的尖括号可以不写类型,但是尖括号必须有 ArrayList<String> list = new ArrayList<String>(); //向集合中添加数据,使用add()方法 list.add("小明"); list.add("小李"); list.add("小张"); System.out.println(list); } }
     数组一旦确定,长度不可改变
    但是ArrayList类长度是可以变化的,使用add()方法进行添加元素

    注意事项:对于ArrayList集合来说,打印的不是地址值,而是内容
    如果内容为空,则打印的结果是中括号[]
    2.ArrayList中常用的方法
    public boolean add(E e):向集合中添加元素,元素类型与泛型一致
    public E get(int index):从集合中获取元素,参数是索引编号,返回值是对应位置的元素
    public E remove(int index):从集合中删除元素,参数是索引编号,返回值是被删除的元素
    public int size():返回集合的长度
    
    
    import java.util.ArrayList;

    public
    class Demo03ArrayListMethod { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>(); //向集合中添加元素 list.add("安徽"); list.add("河北"); list.add("河南"); System.out.println(list); //从集合中获取元素 System.out.println(list.get(1)); //从集合中删除元素 System.out.println(list.remove(2)); System.out.println("删除后的集合:"+list); } }

    3.对ArrayList进行遍历

    import java.util.ArrayList;
    
    public class Demo04ArrayListEach {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<String>();
            list.add("小明");
            list.add("小李");
            list.add("小张");
            //对集合进行遍历
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }

    4.ArrayList中的泛型

    集合的泛型只能是引用类型
    如果想要使用基本数据类型,则需要将其转换为对应的包装类
    基本数据类型 包装类
    byte Byte
    short Short
    int Integer 【特殊】
    long Long
    float Float
    double Double
    char Character 【特殊】
    boolean Boolean
    从JDK1.5开始可以自动实现装箱和拆箱
    自动装箱:基本数据类型 --> 引用类型
    自动拆箱: 引用类型 --> 基本数据类型
    public class Demo05ArrayListBasic {
        public static void main(String[] args) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(100);
            list.add(200);
            list.add(300);
            System.out.println(list.get(0));
        }
    }

    三、Arrays类

    Arrays是一个与数组有关的类,提供了大量的静态方法来操作数组。
    public static String toString(数组):将数组转换为字符串,默认格式为[元素1,元素2,元素3...]
    public static void sort(数组):对参数数组按照升序(从小到大)进行排序
    注意事项:
    ①如果对数字进行排序,则是按照数字的大小的顺序进行排序
    ②如果对字符串进行排序,则是按照字母的先后的顺序进行排序
    import java.util.Arrays;
    
    public class Demo01Arrays {
        public static void main(String[] args) {
            //将数组转换为字符串
            int[] arr1 = {1,2,3};
            String str = Arrays.toString(arr1);
            System.out.println("(1)将数组转换为字符串:"+str);
            //对整型数组进行排序
            int[] arr2 = {45,21,2,24,35,26};
            Arrays.sort(arr2);
            System.out.println("(2)对数组进行排序:"+Arrays.toString(arr2));
            //对字符串数组进行排序
            String[] str1 = {"abc","bcd","cde"};
            Arrays.sort(str1);
            System.out.println("(3)对字符串数组进行排序:"+Arrays.toString(str1));
        }
    }

    小练习:对给定的字符串,按照升序排序并进行倒序打印

    public class Demo02ArraysPractise {
        public static void main(String[] args) {
            String str = "123daeffcsgrduirjr7tadwQG";
            //将字符串转换为数组
            char[] chars = str.toCharArray();
            //按照升序排列
            Arrays.sort(chars);
            //将字符数组倒序排列
            for (int i = chars.length - 1; i >= 0; i--) {
                System.out.println(chars[i]);
            }
        }
    }
  • 相关阅读:
    c语言博客作业09
    c语言|博客作业08
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
    C语言|博客作业04
    C语言|博客作业03
    关于Vue.js里面输入框在v-model之后如果给其绑定属性赋初始值导致绑定数据不响应问题
    前后端分离开发模式中关于前端取得分页数据时的分页问题(前端使用ant design pro)
    《电子病案在病案管理中存在问题及对策》文献阅读随笔
  • 原文地址:https://www.cnblogs.com/my-program-life/p/11617104.html
Copyright © 2020-2023  润新知