Java基础-----集合
来源:互联网 发布:c语言大小写转换程序 编辑:程序博客网 时间:2024/06/08 17:47
在Java中提供了多种集合的实现,并且都继承自Collenction
关系图:
Collection的常用方法:
添加方法:
boolean add(Object obj); 添加一个对象
boolean addAll(Collection coll); 复制另一个集合的数据到当前集合、
删除方法
boolean remove(Object obj); 移除一个对象
boolean removeAll(Collection coll); 移除包含coll集合元素的数据
void clear(); 清除集合中的数据
判断方法:
boolean contains(Object obj); 如果此 collection 包含指定的元素,则返回true。
boolean containsAll(Collection coll); 如果此 collection 包含指定 collection 中的所有元素,则返回true。
boolean isEmpty(); 判断集合中是否有元素。
获取方法:
int size(); 获取集合大小
Iterator iterator(); 得到一个迭代器。
其他方法:
boolean retainAll(Collection coll); 仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
Object toArray(); 返回包含此 collection 中所有元素的数组。
示例代码:
public class Test {public static void main(String[] args) {Collection coll = new ArrayList();print(coll);Collection c1 = new ArrayList();Collection c2 = new ArrayList();print(c1, c2);}public static void print(Collection colletion) {// 添加元素colletion.add("c1");colletion.add("c2");colletion.add("c3");System.out.println("colletion:" + colletion);// 删除元素colletion.remove("c2");// 会改变集合的长度System.out.println("colletion:" + colletion);// 判断是否包含c1System.out.println(colletion.contains("c1"));// 清空集合colletion.clear();System.out.println("colletion:" + colletion);}public static void print(Collection colletion1, Collection colletion2) {// 添加元素colletion1.add("c1");colletion1.add("c2");colletion1.add("c3");colletion1.add("c4");System.out.println("colletion1:" + colletion1);// 添加元素colletion2.add("c2");colletion2.add("c6");colletion2.add("c7");System.out.println("colletion2:" + colletion2);// 将colletion1中的元素添加到colletion2中colletion1.addAll(colletion2);// 从c1集合中删除与c2集合相同的元素boolean b = colletion1.removeAll(colletion2);System.out.println("removeAll:" + b);boolean b1 = colletion1.containsAll(colletion2);System.out.println("containsAll:" + b1);// 取交集boolean b2 = colletion1.retainAll(colletion2);System.out.println("colletion1、colletion2交集:" + colletion1);}}输出结果:colletion:[c1, c2, c3]colletion:[c1, c3]truecolletion:[]colletion1:[c1, c2, c3, c4]colletion2:[c2, c6, c7]removeAll:truecontainsAll:falsecolletion1、colletion2交集:[]
List与Set集合
List:有序,允许重复元素。
Set:无序,不允许重复。
List的示例代码:
public static void main(String[] args){ List list = new ArrayList(); //添加元素 list.add( "list1" ); list.add( "list2" ); list.add( "list3" ); System.out.println(list); //0在1位置插入元素 list.add(0, "list2_insert" ); //删除元素 System.out.println(list.remove(2)); //修改元素 System.out.println(list.set(2,"listupdata" )); //获取元素: System.out.println(list.get(0)); //获取子列表 System.out.println(list.subList(1,3)); System.out.println(list); }输出结果:[list1, list2, list3]list2list3list2_insert[list1, listupdata][list2_insert, list1, listupdata]
Set集合的示例代码:
public static void main(String[] args){ Set set = new HashSet(); //添加元素 set.add( "set1" ); set.add( "set2" ); set.add( "set3" ); System.out.println(set); //删除元素 System.out.println(set.remove("set2")); System.out.println(set); }输出结果:[set3, set2, set1]true[set3, set1]
ArrayList与LinkedList
ArrayList的特点:底层实现是数组,增删慢,查找快
LinkedList的特点:底层实现是链表,增删快,查找慢
HashSet与TreeSet
HashSet的特点:底层实现是哈希表,无序
TreeSet的特点:底层实现是二叉树,有许
Map集合:
Map集合存储的是一组键值的映射关系,是双列集合,而Collection集合存储的是值,是单列集合,Map集合的键是唯一的
常用方法:
添加
value put(key,value): 返回前一个和key关联的值,如果没有返回null。
删除
void clear(): 清空map集合。
value remove(Object key): 根据指定的key删除这个键值对。
判断
boolean containsKey(key); 判断集合中是否有这个键
boolean containsValue(value); 判断集合中是否有这个值
boolean isEmpty(); 判断集合中是否有元素
获取
value get(key): 通过键获取值,如果没有该键返回null。
当然可以通过返回null,来判断是否包含指定键。
int size(): 获取键值对个数。
示例代码:
public static void main(String[] args) {Map<String, String> map = new HashMap<String, String>();// 添加元素System.out.println(map.put("aa", "bb"));System.out.println(map.put("cc", "dd"));System.out.println(map);map.put("11", "22");map.put("33", "44");System.out.println(map);// 删除System.out.println(map.remove("bb"));// 判断System.out.println(map.containsKey("cc"));// 获取System.out.println(map.get("11"));}输出结果:nullnull{aa=bb, cc=dd}{aa=bb, cc=dd, 11=22, 33=44}nulltrue22
HashTable:底层实现是哈希表,线程安全。不允许null作为键,null作为值。
HashMap:底层实现是哈希表,线程不安全。允许null作为键,null作为值。
TreeMap:底层实现是二叉树,线程不安全。可以对Map中的键进行排序。
- [ java ] java基础集合!
- JAVA基础之集合
- java基础之集合
- java基础:集合connection
- java基础之 集合
- java基础10 集合
- java基础--集合
- java基础---集合类
- java基础知识点集合
- java基础 集合迭代器
- JAVA基础之集合
- Java集合框架基础
- java基础--HashSet集合
- java基础_09_集合
- 【Java基础】集合
- Java基础之 集合
- java基础__集合
- JAVA基础集合
- hadoop-2.6.0集群开发环境配置
- 达内学习日志 Day01(上):职业发展规划之态度
- hdu1596 find the safest road(最短路)
- 多线程四(同步函数)
- LeetCode 14: Longest Common Prefix
- Java基础-----集合
- Oracle之DataGurd(DG)环境搭建
- 客户端网页编程--第五章
- ios8新特性widget开发
- 动态生成页面(二)
- DB---环境搭建
- jQuery学习之动画效果
- HDU 2141 Can you find it?【二分】
- ListView+radioButton实现每行单选