很久很久前初学Java时的笔记--集合操作2

来源:互联网 发布:网络借贷细则 编辑:程序博客网 时间:2024/05/22 18:31
集合提供了批量操作元素的方法!


1.collection 提供了一个批量添加的方法 
boolean addAll(Collection c)
把另一个集合中的元素都放到一个集合中!


2.boolean containsAll(Collection c)
判断当前集合是否包含给定集合中的所有元素
若都包含 返回true 
判断A集合 是否包含B集合全部元素




3.删除集合中的元素
boolean remove(E e)方法  注意 只删除一个元素!
删除是只要是equals像的 就可以删
如果集合中有多个一样的,只删除第一个长得像的元素


4.删除集合中  另一个集合中的东西
removeAll()




5.取集合
迭代器
遍历集合元素  Collection 提供了一个方法:
Iterator iterator()
该方法可以获取一个用来遍历当前集合的迭代器
迭代器 本身是一个接口,只定义了遍历集合的方法应该有哪些
并没有具体实现


遵循的规则:
问取删           其中删除元素不是必须的!
首先 获取用于遍历当前集合的迭代器 
Iterator it = c.iterator();


问有没有可以取的元素:
boolean hasNext()  问得过程,判断当前集合是否还有元素可以被取出
while(it.hasNext()){
取出来  
Object obj=it.next();
String str =(String)obj;
输出
syso》。。
删除 
把字符串卸载前面  因为不确定str是不是null
这是为了避免空指针的出现
if("#".equals(str)){
删除使用迭代器遍历集合的过程中,不能通过集合的方法改变元素数量,
否则可能导致迭代器遍历失败,我们可以通过迭代器提供的remove方法删除通过
next方法遍历出来的元素
     !!!!it.remove();

}
}




6. 新循环  也叫增强型for循环 ,for_each 
for(String str:array){
System.out.println(str)

使用新循环可以遍历集合  新循环本身不是新的语法,jvm并不认可,而是编译器认可,他会将新循环
改成迭代器然后生成class文件  


for(Object o:c){
String str = (String)o;
删除的:
if("#".equals(str)){

}
syso>..
}
\




















set  
HashSet       必须提供一个hashcode  equals 方法
LinkedHashSet 会记录放入的顺序 


SortSet  对集合中的元素进行排序 默认升序
COmporable 接口 只提供一种排序规则 不够灵活
Comparator 比较器


Collections.sort(list) 对list的数据进行排序 list元素也需实现Comparable
Colleations.sort(list,COmparator)
comparator 提供一个比较规则,判断list中任意两个元素谁大谁小
0 0
原创粉丝点击