Java集合_学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合_学习笔记相关的知识,希望对你有一定的参考价值。
一、集合
1、集合类也称容器类,主要负责保存、盛装其他数据。
2、集合可以保存数量不确定的数据,保存具有映射关系的数据(也称关联数组)。
3、Java5后提供一些多线程安全的集合类,放在java.util.concurrrent。(utility的缩写,意为多用途的,实用的)
4、集合只能保存对象(实际是对象的引用,习惯称对象)。
5、Java的集合主要由Collection和Map两个接口派生而出,Map接口的实现类用于保存关联数组,Set集合元素不可重复,通过元素本身访问,Map集合可以通过key值访问,List集合可以通过下标访问。
二、Collection接口
1、Collection接口是Set、Queue、List接口的父接口,所以它的方法也可以操控着三个集合。
a、boolean add(Object o):向指定集合里添加一个元素,指定集合对象因为这个方法改变,返回true。
b、boolean addAll(Collection c):把集合c里的所有元素添加到指定集合里,指定集合对象因为这个方法改变,返回true。
c、void clean():清除指定集合的所有元素,将集合长度变为0。
d、boolean contains(Object o):返回集合里是否包含指定元素。
e、boolean containsAll(Collection c):返回集合是否包含集合c里的所有元素。
f、boolean isEmpty();返回集合是否为空,长度为0返回true,否则false。
g、boolean remove(Object o):删除集合中的指定元素o,当集合中包含一个或多个元素o时,删除第一个符合条件的元素,返回true。
h。boolean removeAll(Collection c):从集合里删除集合c包含的所有元素,删除一个或一个以上的元素,返回true。
i、boolean retainAll(Collection c):从集合里删除集合c以外的元素,指定集合对象因为这个方法改变,返回true。
j、in size():返回集合里的元素个数、
k、Object[] toArray():把集合转换为一个数组,集合元素变为对应数组元素。
2、使用Foreach循环遍历集合元素
代码如下:
1 import java.util.HashSet; 2 import java.util.Objects; 3 4 public class MyClass { 5 public static void main(String[] args) { 6 //HashSet()类应该是实现了Collection接口的一个类,否则不可能实例化 7 Collection names = new HashSet(); 8 //添加的应该是引用,这里直接放字符串,是在常量池里? 9 names.add("xiaoming"); 10 names.add("xiaogang"); 11 names.add("xiaoli"); 12 for(Object theName_obj:names){ 13 String theName = (String) theName_obj; 14 System.out.println(theName); 15 //下面这句话会抛出ConcurrentModificationException,因为theName是一个迭代变量,不是元素本身 16 if(theName.equals("xiaoli")){ 17 names.remove(theName); 18 } 19 } 20 } 21 }
运行结果:
1 xiaoming 2 xiaoli 3 Exception in thread "main" java.util.ConcurrentModificationException 4 at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) 5 at java.util.HashMap$KeyIterator.next(HashMap.java:1461) 6 at com.example.MyClass.main(MyClass.java:15) 7 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 8 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 9 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 10 at java.lang.reflect.Method.invoke(Method.java:498) 11 at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 12 13 Process finished with exit code 1
以上是关于Java集合_学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
尚硅谷_Java零基础教程(集合Collection:list,set;map)-- 学习笔记
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段