集合
定义
- 主要作用是存储数据,在定义时不用在声明集合的大小,而且集合里的的数据类型默认的是任意类型的,
- 集合的容量随着数据的增大而增大(自动增长)
集合的层次结构
- 最高接口是: Collections
- Collections 之下有三个最主要的三个接口 分别为, List, Set, Map 三种
List (无序)
List:是有序集合且集合中允许元素重复
- 定义一个无序集合
// An highlighted block List list = new ArrayList<>();
- 1
- 2
- 将元素储存进集合
将元素储存进集合
// An highlighted block
list.add("项昆仑");
//括号内的元素随便写
获取集合中的单个元素,并且输出获取到的该元素
// An highlighted block
//获取该元素
list.get(1);
// 输出该元素
System.out.println(list.get(1));
获取该集合的全部元素 (分为三种方法)
第一种 (采用for循环)
// An highlighted block
//让 int 从零开始(集合中读取元素时也从下标) 然后逐次增加,直至读出集合中所有的元素
for (int i=0;i<list.size();i++){
//输出 (list.get(i)); 因为 i 时每一次循环的结果,所以输出 i
System.out.println(list.get(i));
}
第二种方法 (采用迭代器)
// An highlighted block
//第二种方法 (采用迭代器)
Iterator iterator =list.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
第三种方法(采用for each 循环)
// An highlighted block
//第三种方法 (采用for each 循环)
//Object O 是系统写死的 : 必须是冒号 list 是集合名)
for (Object O:list){
System.out.println(O);
}
集合的常用的几种方法
// An highlighted block
//检查集合是否为空
System.out.println(list.isEmpty());
//获取集合中储存多少元素
System.out.println(list.size());
//查询某个元素在集合中的位置
//找到元素是 会返回来元素的位置,若找不到返回值就是-1
System.out.println(list.indexOf("小二"));
//删除元素
//按照索引删除
//数字 2 代表索引的位置
System.out.println(list.remove(2));
//按照对象删除
//小二 代表的是对象的名字
System.out.println(list.remove("小二"));
//清空整个集合 并且输出集合
list.clear();
System.out.println(list);
Set (无序)
Set : 是无序集合,无序集合数据的摆放没有顺序,但是无序集合中绝地不允许有重复的数据
无需集合不能获取单个元素,只能获取整个集合的元素
定义一个无需集合
// An highlighted block
//创建一个无序集合
Set set= new HashSet();
将元素存储进集合中
// An highlighted block
set.add("运算者");
set.add("绘梦者");
set.add("溯光着");
set.add("狩猎者");
set.add("征服者");
2.获取 集合中的全部元素(分为两种方法)
第一种方法(采用迭代器)
// An highlighted block
//迭代器方法
Iterator iterator= set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
第二种方法 (for each 循环)
// An highlighted block
//for each 循环
for (Object O: set){
System.out.println(O);
//O 就相当于把集合从头到尾的刷了一边
集合中常用的方法(无序集合元素没有顺序 ,所以删除的时候只能用对象来删除)
// An highlighted block
//获取集合中有多少元素
System.out.println(set.size());
//判断集合是否为空
System.out.println(set.isEmpty());
//按照对象删除
//小二 代表的是对象的名字
System.out.println(set.remove("小二"));
//清空整个集合 并且输出集合
set.clear();
System.out.println(set);
Map
Map :集合一次可以存一对对象, put(对象1,对象2) 属于双列集合。
1)左边为键(key),右边为值(value)
2)左边唯一,右边值可以重复
// An highlighted block
//括号里的键对值类型自己定义
//本集合为 字符串类型的键,整数类型的值
//HashMap<> (无序类型) 也可以换为 ArrayList (有序类型)
Map< String,Integer> map=new HashMap<>();
Map (常用方法)
泛型集合
创建一个泛型集合
集合类型一旦确定 ,就只能添加此类型的数据
泛型集合,用无序和有序皆可以定义
// An highlighted block
// < > 括号内写的是集合的类型 自行给定
Set< String > set=new HashSet <String >() ;
System.out.println(set);
Collection (三个方法)
所有排序最终的输出都由for each循环打印输出
// An highlighted block
for (Object o:list){
System.out.println(o);
排序只能应用于有序集合
sout ( ) : 排序
// An highlighted block
// 元素只能添加整形的元素,若添加两位元素,第一位就会是元素的下标,排序会从第二位开始排
// 添加元素
list.add(0,62);
list.add(1,28);
list.add(2,73);
list.add(3,155);
shuffle ( ): 随机
// An highlighted block
Collections.shuffle(list);
reverse ( ): 逆序
// An highlighted block
Collections.reverse(list);