要了解List接口,就不得不说起Java的集合框架。
(该图来自菜鸟教程)
Java 集合框架主要包括两种类型的容器,集合Collection和图Map。
Collection 接口又有 3 种子类型,List、Set 和 Queue。
java中两种创建静态数组的形式如下,
int[] array = new int[5]; // { 0, 0, 0, 0, 0 }
int[] iarray = { 1, 2, 3, 5, 4 };
ArrayList初始化的基本格式如下,
import java.util.ArrayList; // 引入 ArrayList 类
ArrayList<ElemType> objectName =new ArrayList<>(); // 初始化
ElemType是数组中对象(元素)的引用类型数据,objectName是数组名字。
(注意注意下文中的Element是ElemType引用类型的基本类型。)
(因为实际ArrayList中的元素是对象,所以需要引用类型)
(String可以像使用基本类型一样,但实际是引用类型)
基本类型 | 引用类型 |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
例如,
import java.util.ArrayList;
ArrayList<Integer> arrayList =new ArrayList<>();
避免繁琐后边的代码例子中引入 ArrayList 类就不写了。
ArrayList<ElemType> objectName =new ArrayList<>();
objectName.add(ElemType e);
objectName.add(InterPre i, ElemType e);
可以看到,add()函数有两种添加方法,
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(0,6);
for(int i : arrayList) System.out.print(i + " ");//这里的for循环迭代是依次得到数组中的元素,后边会讲
//输出:6 1 2 3
ArrayList<ElemType> objectName =new ArrayList<>();
objectName.remove(index i);
作用:删除索引为 i 上的元素,如
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.remove(2);
for(int i : arrayList) System.out.print(i + " ");
//输出:1 2
ArrayList<ElemType> objectName =new ArrayList<>();
objectName.get(index i);
作用:返回索引为i处上的元素,如
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
System.out.println(arrayList.get(2));
//输出:3
ArrayList<ElemType> objectName =new ArrayList<>();
objectName.set(index i, ElemType e);
作用:将索引为 i 上的元素修改为 e,如
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.set(1,6);
for(int i : arrayList) System.out.print(i + " ");
//输出:1 6 3
int ArrayLength = arrayList.size();
作用:**返回数组的长度,**赋值给ArrayLenth。如,
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
System.out.println(arrayList.size());
//输出:3
下面就不给出示例代码和输出结果啦,太多了,但是会给出基本格式和用法。
ArrayList<ElemType> arraylist =new ArrayList<>();
第一种,通过普通for循环迭代,依次输出arraylist中的元素。
ArrayList<ElemType> arraylist = new ArrayList<>();
/*
......
(赋值操作)
*/
for (int i = 0; i < arraylist.size(); i++)
System.out.println(arraylist.get(i));
第二种,通过for-each迭代,依次输出arraylist中的元素,也就是上文给出的方式。
ArrayList<ElemType> arraylist = new ArrayList<>();
/*
......
(赋值操作)
*/
for (Element e : arraylist)
System.out.println(e);
注意Element是ElemType引用类型的基本类型。
import java.util.Collections; // 引入 Collections 类
Collections.sort(arraylist);
注意Collections.sort()是升序排序(从小到大)。
arraylist.sort(Comparator c)
Comparator c 的意思是排序方式,分别为升序和降序。
import java.util.Comparator;
arraylist.sort( Comparator.naturalOrder()) ;
//得到数组升序排序的结果(从小到大)
arraylist.sort( Comparator.reverseOrder());
//得到数组降序排序的结果(从大到小)