Java单列集合总结

来源:互联网 发布:益思留学 知乎 编辑:程序博客网 时间:2024/06/06 12:56

集合专题_单列集合Collection

一、集合常见功能
这里写图片描述

01.添加元素 add(E e)
ArrayList list=new ArrayList();
list.add(“a”);
list.add(“b”);
list.add(“c”);
list.add(“a”);
System.out.println(list);//结果为[a, b, c, a]

02.判断集合中是否包含元素contains(Object o)
//判断list集合中是否包含 元素”b”
boolean b1 = list.contains(“b”);
System.out.println(b1);//结果为true,包含

//判断list集合中是否包含 元素”b”
boolean b2 = list.contains(“w”);
System.out.println(b2);//结果为false,不包含

03.清空元素clear()
list.clear();//清空集合中的元素
System.out.println(list);//结果为[]

04.判断集合中是否包含元素isEmpty()
//判断集合是否为空
boolean b = list.isEmpty();
System.out.println(b);//true,集合中没有元素

二、集合遍历

01.迭代器遍历(任何集合通用)
这里写图片描述

ArrayList list=new ArrayList();
list.add(“abc”);
list.add(“bbb”);
list.add(“ccc”);
//获取集合的迭代器
Iterator it = list.iterator();
//循环判断集合中是否有元素可迭代
while(it.hasNext()){
//如果有元素,通过next()方法获取元素
Object n = it.next();
System.out.println(n);
}

注意事项
注意:并发修改异常ConcurrentModificationException
迭代器在遍历集合的同时,集合自己去修改了集合中的元素,这个时候就会产生并发修改异常。

开发中并不会使用迭代器遍历,取而代之的是高级for循环

02.普通for循环(只遍历List集合)
ArrayList list=new ArrayList();
list.add(“abc”);
list.add(“bbb”);
list.add(“ccc”);
//普通for循环 注意:普通for不能遍历Set,因为Set没有索引。
for(int i=0;i>list.size();i++){
String e = list.get(i);
System.out.println(e);
}

03.高级for循环(遍历任何集合,但是不能修改元素)
注意:高级for也叫foreach
/*
* 高级for循环遍历
* for(数据类型 变量名:集合/数组){
*
* }
*/
for(String s:list){
System.out.println(s);
list.add(“xxx”);
}

三、Set集合

  1. HashSet 集合
    保证元素唯一性的方式:alt+shift+s自动完成
    1,复写元素的hashCode
    2,复写元素的equals

往HashSet集合中存储元素的时候,集合会先判断元素的hashCode值否相等,

再判断equals是否相等,如果全都相等就认为元素重复,不存。否则存储

HashSet存储字符串

String类已经复写了hashCode和equals所以HashSet中存储String对象,不能重复
//特点:无序,不能重复 ,没有索引
HashSet set=new HashSet();
set.add(“abcd”);
set.add(“bbbb”);
set.add(“cccc”);
set.add(“abcd”);
System.out.println(set);//结果[bbbb, cccc, abcd]

HashSet存储Student

Student类中复写hashCode和equals 才能保证在HashSet集合中 Student对象不重复
HashSet set1=new HashSet();
set1.add(new Student(“张三丰”,65));
set1.add(new Student(“张无忌”,30));
set1.add(new Student(“张三丰”,65));
System.out.println(set1);//[[ 张无忌30], [ 张三丰65]]

02.LinkedHashSet集合
保证元素是有序的,保证键的的唯一,其他和HashSet用法一样。

案例代码
//LinkedHashSet有序,不能重复
LinkedHashSet linkset=new LinkedHashSet<>();
linkset.add(“a”);
linkset.add(“a”);
linkset.add(“b”);
linkset.add(“c”);
linkset.add(“d”);
System.out.println(linkset);//[a, b, c, d]

System.out.println(“———————–”);

//HashSet元素无序,不能重复
HashSet set=new HashSet<>();
set.add(“a”);
set.add(“a”);
set.add(“b”);
set.add(“c”);
set.add(“d”);
System.out.println(set);//[d, b, c, a]