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              Byteshort             Shortint               Integer    【特殊】long              Longfloat             Floatdouble            Doublechar              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]);
        }
    }
}

原文地址:https://www.cnblogs.com/my-program-life/p/11617104.html

时间: 2024-07-30 04:32:30

Java中 Array、Arrays与ArrayList的相关文章

Java中Array的常用方法

0.创建/声明一个数组 1 2 3 String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b","c","d","e"}; 1.Java中打

Java中如何克隆集合——ArrayList和HashSet深拷贝

编程人员经常误用各个集合类提供的拷贝构造函数作为克隆List,Set,ArrayList,HashSet或者其他集合实现的方法.需要记住的是,Java集合的拷贝构造函数只提供浅拷贝而不是深拷贝,这意味着存储在原始List和克隆List中的对象是相同的,指向Java堆内存中相同的位置.增加了这个误解的原因之一是对于不可变对象集合的浅克隆.由于不可变性,即使两个集合指向相同的对象是可以的.字符串池包含的字符串就是这种情况,更改一个不会影响到另一个.使用ArrayList的拷贝构造函数创建雇员List

Java中使用Arrays.asList初始化ArrayList

package xiaoling; import java.util.Arrays; import java.util.ArrayList; import java.util.List; public class ListTest{ public static void main(String[] args){ List<List<Integer>> list = new ArrayList<>(); for (int num=0; num<10; ++num){

Java中的Vector和ArrayList的比较

今天在学习观察者模式时,查看了下Observable类,发现它里面的实现使用的是Vector,这个类不太熟悉,平时都没有使用过,查看这个类的源码,Vector的底层也是使用数组实现的,而且继承了AbstractList,实现了List接口,看着Vector和ArrayList很像:底层都是用数组实现,都继承了AbstractList,实现了List接口.所以搜了下看看Vector和ArrayList有什么区别. 在The Java Programming Language (Addison-We

Java中Array.sort()的几种用法

****************************************************** * 精品书籍推荐:<Java从入门到经通> * 本书系统全面.浅显易懂,非常适合没有任何编程经验的初学者阅读, * 也可作为软件开发人员和高校师生的必备参考书. ****************************************************** Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好

JAVA中Array与List互转

List<String> list = new ArrayList<String>();String[] array = new String[10]; 1.数组转成Listlist = Array.asList(array); 2.List转成数组array = StringUtils.toStringArray(list);#注:这里要补充上StringUtils的包路径

关于Java中多维数组的内存结构分析

基本概念 本文主要针对JVM中关于一维数组和二维数组的内存模型分析.验证.讨论![仅供参考]. 1.概念模型 1)一维数组 int arr[] = new int[3]; 2)二维数组 int[ ][ ] arr = new int[3][ ]; arr[0] = new int[3]; arr[1] = new int[5]; arr[2] = new int[4]; 3)Java中的对象(本章节主要分析和数组相关的内容,关于Java对象的Memory结构会在以后说明!) class A {

如何在Java中创建数组列表

为了在Java中存储动态大小的元素,我们使用了ArrayList.每当添加新元素时,它会自动增加它们的大小.ArrayList实现Java的List接口和Java的Collection的一部分. 由于它们的功能和灵活性,它被广泛使用. ArrayList的关键点 An ArrayList是一个可调整大小的数组,也称为动态数组.它根据新元素增加其大小,并在删除元素时减小大小.数组用于在ArrayList 内部存储元素 .它允许您通过索引检索元素.Java ArrayList 类允许重复和空值.Ja

Java中arraylist和linkedlist源代码分析与性能比較

Java中arraylist和linkedlist源代码分析与性能比較 1,简单介绍 在java开发中比較经常使用的数据结构是arraylist和linkedlist,本文主要从源代码角度分析arraylist和linkedlist的性能. 2,arraylist源代码分析 Arraylist底层的数据结构是一个对象数组.有一个size的成员变量标记数组中元素的个数,例如以下图: * The array buffer into which the elements of the ArrayLis