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]);
        }
    }
}

 

posted @ 2019-10-02 11:30  红尘年少  阅读(3634)  评论(0编辑  收藏  举报