一、主要集合概述
Java集合主要有3种重要的类型:
- List:是一个有序集合,可以放重复的数据
- Set:是一个无序集合,不允许放重复的数据
- Map:是一个无序集合,集合中包含一个键对象,一个值对象,键对象不允许重复,值对象可以重复。(身份证号----姓名)
刚开始看到这个关系图感到有些劝退很正常,不用担心,下面我们来逐步了解常见的集合。
二、ArrayList
ArrayList类是一个可以动态修改的数组,与普通数组的区别就是它没有固定大小的限制,我们可以添加或删除元素。
ArrayList类位于java.util包中,使用前需要导入它,语法格式如下:
import java.util.ArrayList; //引入ArrayList类
ArrayList<E> xxx = new ArrayList<>(); //实例化
ArrayList还提供了以下相关操作:
1、添加元素
添加元素到 ArrayList 可以使用 add() 方法:
//测试类中
ArrayList<String> hhh = new ArrayList<String>();
hhh.add("stack");
hhh.add("queue");
hhh.add("algorithm");
System.out.println(hhh);
输出结果:
[stack, queue, algorithm]
2、访问元素
访问 ArrayList 中的元素可以使用 get() 方法:
System.out.println(hhh.get(1));
输出结果:
queue
3、修改元素
修改 ArrayList 中的元素可以使用 set() 方法:
hhh.set(0,"icpc");
输出结果:
[icpc, queue, algorithm]
4、删除元素
删除 ArrayList 中的元素可以使用 remove() 方法:
hhh.remove(1);
输出结果:
[stack, algorithm]
5、返回规模
计算 ArrayList 中的元素数量可以使用 size() 方法:
System.out.println(hhh.size());
输出结果:
3
6、迭代数组列表
方法一:
for(int i=0;i<hhh.size();i++){
System.out.println(hhh.get(i));
}
方法二:
for(String i : hhh){
System.out.println(i);
}
三、LinkedList
LinkedList其实就是链表,对于链表这个数据结构在这里就不做赘述了,我们主要来看LinkedList的常见用法。
我们先来看下使用ArrayList的场合:
- 频繁访问列表中的某一个元素。
- 只需要在列表末尾进行添加和删除元素操作。
接下来我们再来看下使用LinkedList的场合:
- 需要通过循环迭代来访问列表中的某些元素。
- 需要频繁地在列表开头、中间、末尾等位置进行添加和删除元素操作。
LinkedList 类位于 java.util 包中,使用前需要引入它,语法格式如下:
import java.util.LinkedList;//引入LinkedList类
LinkedList<E> hhh = new LinkedList<E>(); //实例化
创建一个简单的链表实例:
LinkedList<String> hhh = new LinkedList<String>();
hhh.add("stack");
hhh.add("queue");
hhh.add("tree");
hhh.add("graph");
System.out.println(hhh);
输出结果:
[stack, queue, tree, graph]
链表的一些常见操作:
在列表开头添加元素:
hhh.addFirst("algorithm");
在列表结尾添加元素:
hhh.addLast("algorithm");
在列表开头移除元素:
hhh.removeFirst();
在列表结尾移除元素:
hhh.removeLast();
获取列表开头的元素:
System.out.println(hhh.getFirst());
获取列表结尾的元素:
System.out.println(hhh.getLast());
迭代元素的方法同ArrayList