Java基础之Collection集合
【摘要】 1.0 Collection集合分类Collection 接口的接口 对象的集合(单列集合)List 接口:元素按进入先后有序保存,可重复LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全Vector 接口实现类 数组, 同步, 线程安全Stack 是Vector类的实现类Set 接口:...
1.0 Collection集合分类
Collection 接口的接口 对象的集合(单列集合)
- List 接口:元素按进入先后有序保存,可重复
- LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
- ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
- Vector 接口实现类 数组, 同步, 线程安全
- Stack 是Vector类的实现类
- Set 接口: 仅接收一次,不可重复,并做内部排序
- HashSet 使用hash表(数组)存储元素
- LinkedHashSet 链表维护元素的插入次序
- TreeSet 底层实现为二叉树,元素排好序
1.1 Collection集合概述
- 是单列集合的顶层接口,它表示一组对象,这些对象也称Collection元素
- JDK不提供此接口的直接实现,它提供更具体的子接口(Set 和 List)实现
package ceshi;
import java.util.AbstractCollection;
import java.util.ArrayList;
import java.util.Collection;
public class CollectionDemo {
public static void main(String[] args) {
//创建Collection集合对象
Collection<String> c = new ArrayList<String>();
//添加元素
c.add("hello");
c.add("world");
c.add("java");
System.out.println(c); //[hello, world, java]
}
}
1.2 Collection集合常用方法(查看所有源码快捷键)
方法名 | 说明 |
---|---|
public boolean add(E e) | 把给定的元素添加到当前集合中 |
public boolean remove(E e) | 把给定的对象在当前集合中删除 |
public void clear() | 清空集合中所有的元素 |
public boolean contains(Object obj) [kənˈteɪnz] 包括 | 判断当前集合中是否存在指定的对象 |
public boolean isEmpty() [ˈenpti] | 判断当前集合是否为空 |
public int size() | 返回集合中元素的个数 |
public Object[] toArray( ) | 把集合中的元素,储存到数组中 |
- 快捷键:Alt+7 打开源码中所有方法
1.3 Collection集合的遍历
- Collection 集合遍历有三种方法:
- 迭代器
- foreach(增强for循环)
- DK 1.8 开始的新技术 Lambda 表达式(了解)
1.3.1 Iterator['lɪtəreɪtə]迭代器遍历集合
- lterator:迭代器,集合的专用遍历方式
Iterator<E> iterator()
:返回此集合中元素的迭代器,通过集合的iterator()
方法得到- 迭代器是通过集合的**iterator()**方法得到的,所以我们说它是依赖于集合而存在的
- Iterator中的常用方法
方法名 | 说明 |
---|---|
E next() | 获取迭代中的下一个元素 |
boolean hasNext() | 如果迭代具有更多元素,则返回true |
1.4 Collections工具类
- 包:
java.util.Collections
- Collections 并不属于集合,而是用来操作集合的工具类
- 常用方法(全是静态修饰,用类名调用)
方法名 | 说明 |
---|---|
public static <T extends Comparable<?super T>> void sort(List<T> list) | 将指定的列表按升序排序 |
public static void reverse(List<?> list) | 反转指定列表中元素顺序 |
public static void shuffle(List<?> list) | 使用默认的随机源随机排序指定的列表 |
package ceshi;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MapDemo {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(30);
list.add(20);
list.add(50);
list.add(10);
list.add(40);
System.out.println(list); //[30, 20, 50, 10, 40]
//1,public static <T extends Comparable<?super T>> void sort(List list) 将指定的列表按升序排序
/*Collections.sort(list);
System.out.println(list); //[10, 20, 30, 40, 50]*/
//2,public static void reverse(List<?> list) 反转指定列表中元素顺序
/*Collections.reverse(list);
System.out.println(list); //[40, 10, 50, 20, 30]*/
//3,public static void shuffle(List<?> list) 使用默认的随机源随机排序指定的列表
Collections.shuffle(list);
System.out.println(list);
//第一次运行[10, 40, 30, 50, 20]
//第二次运行[10, 30, 20, 50, 40]
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)