JAVA 修炼秘籍第三章:《绝地反击》 JAVA 修炼秘籍第四章:《闭关修炼》 JAVA 修炼秘籍第五章:《卧薪尝胆》 JAVA 修炼秘籍第六章:《鏖战》 JAVA 修炼秘籍第七章:《面向对象编程》 JAVA 修炼秘籍第八章:《String类》 JAVA修炼秘籍(番外篇)第一章:《这四道代码题,你真的会吗?》 JAVA修炼秘籍(番外篇)第二章:《图书馆管理系统》
——————————————————————生活以痛吻我,我却报之以歌。
一、List类
- 介绍: List是体格有序的可重复的集合,可以对其中每一个元素的位置进行精确的控制,可以通过索引访问元素,遍历元素。
- List中常用的两个类:ArrayList(顺序表),LinkedList(双向链表)。
- List实现了Collection接口,LinkedList与ArrayList自然也实现了Collection接口
二、Collection接口
- Collection 接口定义了一些通用的方法通过这些方法可以实现对集合的基本操作,定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。
- 常用方法
1. bollean add(E e)
- 作用:向集合中添加一个元素,添加成功返回true,反之返回false
- 实例:
ArrayList arr=new ArrayList();
arr.add(20);
System.out.println(arr);
- 此时输出:[20];
2.boolean addAll (Collection c);
- 作用:向集合中添加C中的所有元素。添加成功返回true,反之返回false
- 实例:
ArrayList arr=new ArrayList();
arr.add("xxoo");
ArrayList arr2=new ArrayList();
arr2.addAll(arr);
System.out.println(arr2);
- 此时输出:[xxoo];
3.void clear();
- 作用:清除当前集合的所有元素
- 实例:
ArrayList arr=new ArrayList();
arr.add("xxoo");
arr.clear();
System.out.println(arr);
- 此时输出:[];
4.boolean contains(Object O)
- 作用:判断当前集合中时候包含指定元素,包含返回true,反之返回false
- 实例:
ArrayList arr=new ArrayList();
arr.add("xx");
System.out.println(arr.contains("xx"));
- 此时输出:true;
5.boolean containsAll(Collection c);
- 作用:判断当前集合中是否包含,参数集合C中的所有元素,包含返回true,反之返回false
- 实例:
ArrayList arr1=new ArrayList();
ArrayList arr2=new ArrayList();
arr1.add("xxoo");
arr2.add("aabb");
System.out.println(arr1.containsAll(arr2));
- 此时输出:false;
6.boolean isEmpty();
- 作用:判断当前集合是否为空,空返回true,反之返回false
- 实例:
ArrayList arr1=new ArrayList();
System.out.println(arr1.isEmpty());
- 此时输出:true;
7.Iterator<E> iterator();
- 作用:返回一个Iterator对象,用于遍历集合中的元素(迭代)。
- 实例:
List<String> list=new ArrayList<String>();
list.add("hello ");
list.add(" bit ");
list.add(" wel come");
Iterator<String> iterator=list.iterator();
while(iterator.hasNext()){
String str=iterator.next();
System.out.print(str);
}
- 此时输出:hello bit wel come;
8.boolean remove(Object O);
- 作用:从当前集合中删除与参数O相同的第一个元素。删除成功返回true,反之返回false。
- 实例:
ArrayList arr1=new ArrayList();
arr1.add("xxoo");
arr1.add("aabb");
arr1.add("QQPP");
arr1.remove("QQPP");
System.out.println(arr1);
- 此时输出:[xxoo, aabb];
9.boolean removeAll(Collection C)
- 作用:从当前集合中删除所有在参数C集合中出现的元素。删除成功返回true,反之返回false。
- 实例:
ArrayList arr1=new ArrayList();
ArrayList arr2=new ArrayList();
arr1.add("xxoo");
arr1.add("QQPP");
arr1.add("QQPP");
arr2.add("QQPP");
arr1.removeAll(arr2);
System.out.println(arr1);
- 此时输出:[xxoo];
10.boolean retainAll(Collection C);
- 作用:从当前集合中删除参数C集合中不包含的元素。删除成功返回true,反之返回false。
- 实例:
ArrayList arr1=new ArrayList();
ArrayList arr2=new ArrayList();
arr1.add("xxoo");
arr1.add("QQPP");
arr1.add("QQPP");
arr2.add("QQPP");
arr1.retainAll(arr2);
System.out.println(arr1);
- 此时输出:[QQPP, QQPP];
11.int size();
- 作用:返回当前集合中的元素个数
- 实例:
ArrayList arr1=new ArrayList();
arr1.add("xxoo");
arr1.add("QQPP");
arr1.add("QQPP");
System.out.println(arr1.size());
- 此时输出:3;
12.Object toArray();
- 作用:将当前集合转换为数组,所有的集合元素变成对应的数组元素。
- 实例:
ArrayList<String> arr=new ArrayList<String>();
arr.add("xxoo");
arr.add("QQPP");
arr.add("QQPP");
String[] str=arr.toArray(new String[arr.size()]);
for(String s:str){
System.out.print(s+" ");
}
- 此时输出:xxoo QQPP QQPP ;
三、ArrayList(顺序表)
- 可变数组大小
- 提供了快速基于索引的访问元素的方式
- 对尾插尾删,头插头删操作速度为O(1);
- 允许对集合中的元素进行快速的随机访问
- 除头尾的插入删除操作外速度较慢。
- ArrayList 类除了包含 Collection 接口中的所有方法之外,还包括 List 接口中提供的如下方法。
1.E get(int index);
- 作用:获取当前集合中index位置的元素后返回。E为集合中元素的数据类型。
- 实例:
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
System.out.println(list.get(1));
- 此时输出:2;
2.int index(Object O);
- 作用:返回当前集合中第一次出现参数O的下标,如果没有返回-1。
- 实例:
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(2);
System.out.println(list.indexOf(2));
- 此时输出:1;
3.int lastIndexOf(Object O);
- 作用:返回当前集合中最后一次出现参数O的下标,如果没有返回-1。
- 实例:
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(1);
list.add(1);
list.add(1);
System.out.println(list.lastIndexOf(1));
- 此时输出:3;
4. E set(int index,E element);
- 作用:将当前集合中index位置下标的元素修改为element参数的对象,此方法返回修改前该位置的元素。
- 实例:
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(1);
list.add(1);
list.set(1,2);
System.out.println(list);
- 此时输出:[1, 2, 1];
5. LIst<E> subList(int fromIndex,int toIndex);
- 作用:返回当前集合中从fromIndex下标开始到toIndex下标位置的元素,下标为左闭右开。
- 实例:
List<Integer> list1=new ArrayList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1.add(5);
List<Integer> list2 = list1.subList(2, 4);
System.out.println(list2);
- 此时输出:[3, 4];
四、LinkedList(双向链表)
- 采用链表结构存储元素
- 对任意位置的元素进行插入删除操作更便利。
- 随机访问元素速度较慢。
- LinkedList 类除了包含 Collection 接口和 List 接口中的所有方法之外,还特别提供了如下的方法。
1.void addFirst(E e);
- 作用:将指定元素添加到当前集合的头部
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
System.out.println(list);
- 此时输出:[3, 2, 1];
2.void addLast(E e);
- 作用:将指定元素添加到当前集合的尾部
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addLast(1);
list.addLast(2);
list.addLast(3);
System.out.println(list);
- 此时输出:[1, 2, 3];
3. E getFirst();
- 作用:获取当前集合中第一个元素。
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addLast(1);
list.addLast(2);
list.addLast(3);
System.out.println(list.getFirst());
- 此时输出:1;
4. E getLast();
- 作用:获取当前集合中最后一个元素。
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addLast(1);
list.addLast(2);
list.addLast(3);
System.out.println(list.getLast());
- 此时输出:3;
5. E removeFirst();
- 作用:删除当前集合中第一个元素。
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addLast(1);
list.addLast(2);
list.addLast(3);
System.out.println(list.removeFirst());
System.out.println(list);
- 此时输出:1 换行 [2, 3];
6. E removeLast();
- 作用:删除当前集合中最后一个元素。
- 实例:
LinkedList<Integer> list=new LinkedList<Integer>();
list.addLast(1);
list.addLast(2);
list.addLast(3);
System.out.println(list.removeLast());
System.out.println(list);
- 此时输出:3 换行 [1, 2];
|