Java单列集合总结
2017-06-15 22:58
169 查看
集合专题_单列集合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集合
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]
一、集合常见功能
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集合
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]
相关文章推荐
- Ireport 从java后台接收list集合总结
- java笔记总结_06_集合泛型
- java 常用集合list与Set、Map区别及适用场景总结
- java集合: List、Set、Map总结 + HashMap/Hashtable 差别
- Java基础之集合知识点总结二
- java 常用集合list与Set、Map区别及适用场景总结
- Java集合及concurrent并发包总结(转)
- Java 集合系列04之 fail-fast总结
- Java集合-04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
- Java通用程序设计与集合方法总结
- java 集合框架总结
- Java数据结构与算法之数据结构-逻辑结构-集合(七)------集合之Set接口和HashSet和TreeSet、LinkedHashSet实现类总结
- Java学习总结之第十一章 Java集合
- java集合遍历的几种方式总结及比较
- Java集合及concurrent包总结
- Java 集合总结2
- Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
- java中List、Set、Map集合的遍历方法总结
- java集合总结
- java常用集合总结