Java的集合类是一种非常有用的工具类,用于存储多个对象。它是一个容器,可以把多个对象放到里面。

Java集合分三种情况:

  Set:无序、不可重复

  List:有序、可重复

  Map:具有映射关系

Collections集合的功能:

  boolean add(Object) *保证集合内包含了自变量。如果它没有添加自变量,就返回 false(假)
  boolean addAll(Collection) *添加自变量内的所有元素。如果没有添加元素,则返回 true(真)
  void clear() *删除集合内的所有元素
  boolean contains(Object) 若集合包含自变量,就返回“真”
  boolean containsAll(Collection) 若集合包含了自变量内的所有元素,就返回“真”
  boolean isEmpty() 若集合内没有元素,就返回“真”
  Iterator iterator() 返回一个反复器,以用它遍历集合的各元素
  boolean remove(Object) *如自变量在集合里,就删除那个元素的一个实例。如果已进行了删除,就返回“真”
  boolean removeAll(Collection) *删除自变量里的所有元素。如果已进行了任何删除,就返回“真”
  boolean retainAll(Collection) *只保留包含在一个自变量里的元素(一个理论的“交集”)。如果已进行了任何改变,就返回“真”
  int size() 返回集合内的元素数量
  Object[] toArray() 返回包含了集合内所有元素的一个数组

Map集合没有继承Collection接口,其提供的是key到value的映射。Map接口不能包含相同的Key,每个key只能映射,功能有:

  Object put(Object key,Object value);//往容器中添加元素,键、值均为对象,由于键不能重复,如果添加的元素的key已存在,则覆盖value,以Object类型返回被覆盖的value;如果添加的元素的key不存在,则返回null。

  Object get(Object key);//获取容器中键为key的元素的value,以Object类型返回。如果不存在此key,则返回null。

  Object remove(Object key);//从容器中移除键为key的元素,以Object类型返回该元素的value;如果无元素的键为key,则返回null,如果此映射允许 null 值,则返回 null 值并不一定 表示该映射不包含该键的映射关系;也可能该映射将该键显示地映射到 null。

  boolean containsKey(Object key);//该容器是否包含键为key的元素。

  boolean containsValue(Object value);//该容器是否包含值为value的元素。

  int size();//该容器中键值对的个数;

  boolean isEmpty();//是否为空

  void putAll(Map t);//将t中的所有元素添加到该容器中

  void clear();//清空


迭代器Iterator接口:

  Iterator接口也是Java集合框架的成员,但它不是用来存储对象的,而是用于遍历(迭代访问)集合中的元素。

例子:

CollectionTest:

  1. public class CollectionTest {
  2. public static void main(String[] args) {
  3. //创建一个集合对象
  4. Collection coll1 = new ArrayList();
  5. //添加元素到集合对象中
  6. coll1.add("111");
  7. coll1.add("222");
  8. coll1.add("333");
  9.  
  10. //输出
  11. System.out.println("集合coll1的内容:"+coll1);
  12. System.out.println("集合coll1的大小:"+coll1.size());
  13. System.out.println("集合coll1的哈希值:"+coll1.hashCode());
  14. System.out.println("集合coll1转换String:"+coll1.toString());
  15. System.out.println("集合coll1去除222是否成功:"+ coll1.remove("222"));
  16. System.out.println("集合coll1移除000后的内容:"+coll1);
  17. System.out.println("集合coll1是否包含111:"+coll1.contains("111"));
  18. //System.out.print("清空coll1...");
  19. //coll1.clear();
  20. //System.out.print("\n查看内容:"+coll1+"\n清空成功!......");
  21.  
  22. Collection coll2 = new ArrayList();
  23. //把coll1添加到coll2
  24. coll2.addAll(coll1);
  25. System.out.println("-----------------------------------");
  26. Object o[] = coll2.toArray();
  27. for (int i = 0; i < o.length; i++) {
  28. System.out.println(o[i]);
  29. }
  30. }
  31.  
  32. }

输出结果:

  1. 集合coll1的内容:[111, 222, 333]
  2. 集合coll1的大小:3
  3. 集合coll1的哈希值:48378961
  4. 集合coll1转换String:[111, 222, 333]
  5. 集合coll1去除222是否成功:true
  6. 集合coll1移除000后的内容:[111, 333]
  7. 集合coll1是否包含111true
  8. -----------------------------------
  9. 111
  10. 333

MapTest:

  1. public class MapTest {
  2. public static void main(String[] args) {
  3. Map<String,String> map_test = new HashMap<String,String>();
  4. map_test.put("item1", "value1");
  5. map_test.put("item2", "value2");
  6. map_test.put("item3", "value3");
  7. map_test.put("item4", "value4");
  8. map_test.put("item5", "value5");
  9.  
  10. Set set_test = map_test.entrySet();
  11. Iterator iterator = set_test.iterator();
  12. while(iterator.hasNext()){
  13. Map.Entry<String, String> map_entity = (Map.Entry<String, String>) iterator.next();
  14. System.out.println(map_entity.getKey()+"-----"+map_entity.getValue());
  15. }
  16.  
  17. }
  18. }

输出结果:

  1. item4-----value4
  2. item2-----value2
  3. item3-----value3
  4. item1-----value1
  5. item5-----value5

未完待续... ...

Java——集合的更多相关文章

  1. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  2. Scala集合和Java集合对应转换关系

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...

  3. java集合你了解多少?

    用了java集合这么久,还没有系统的研究过java的集合结构,今天亲自画了下类图,总算有所收获. 一.所有集合都实现了Iterable接口. Iterable接口中包含一个抽象方法:Iterator& ...

  4. 深入java集合学习1-集合框架浅析

    前言 集合是一种数据结构,在编程中是非常重要的.好的程序就是好的数据结构+好的算法.java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构.如顺序表,链表,栈和堆等.Java 集合框 ...

  5. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  6. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  7. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  8. Java 集合框架

    Java集合框架大致可以分为五个部分:List列表,Set集合.Map映射.迭代器.工具类 List 接口通常表示一个列表(数组.队列.链表 栈),其中的元素 可以重复 的是:ArrayList 和L ...

  9. Java集合概述

    容器,是用来装东西的,在Java里,东西就是对象,而装对象并不是把真正的对象放进去,而是指保存对象的引用.要注意对象的引用和对象的关系,下面的例子说明了对象和对象引用的关系. String str = ...

  10. 深入java集合系列文章

    搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...

随机推荐

  1. canvas高斯模糊算法

    对于模糊图片这个效果的实现,其实css3中的filter属性也能够实现,但是这个属性的兼容性不是很好,所以我们通常不用这种方法实现,而使用canvas配合JS实现. <span style=&q ...

  2. 关于安装 rst2pdf 时遇到的 setuptools过老的问题

    由于想把flask里面的.rst文档 转一些成pdf方便查看和翻阅(.rst文档都非常新一直在维护) 所以查到一个模块rst2pdf 安装好之后却发现警告里面提示我的setuptools版本过老无法运 ...

  3. jmeter 参数化测试

    变量的值可以不改变,可以被定义一次,如果不使用,不会改变值. 在测试计划中,变量可以做为方便的频繁使用的表达式,或都作为在测试运行中的可能会改变的常量,例如 线程组中线程的数量.主机名称 在确定一个测 ...

  4. python之tkinter使用-二级菜单

    # 菜单功能说明:二级菜单 import tkinter as tk from tkinter import messagebox root = tk.Tk() root.title('菜单选择') ...

  5. MyBatis:传参

    MyBatis从入门到放弃二:传参 前言 我们在mapper.xml写sql,如果都是一个参数,则直接配置parameterType,那实际业务开发过程中多个参数如何处理呢? 从MyBatis API ...

  6. MT【25】切线不等式原理及例题

    评:切线不等式和琴生(Jesen)不等式都是有其几何意义的,在对称式中每一项单变量后利用图像的凹凸性得到一个线性的关系式.已知的条件往往就是线性条件,从而可以得到最值.

  7. 用powershell 批量卸载 windows 更新

    $KBID = "KB958488" $KBID1 = "KB976902" cls function Remove-Update { $HotFixes = ...

  8. 【转】 cJSON 源码解析

    关于cjson的介绍和使用方法就不在这里介绍了,详情请查看上一篇博客cjson使用方法. JSON的内存结构像广义表,可以认为是有层次的双向链表. cJSON程序中的细节点如下: 大量宏替换 大量静态 ...

  9. JavaScript表格插件库

    DataTables https://datatables.net/ Handsontable https://handsontable.com/ JsGrid http://js-grid.com/ ...

  10. P3507 GRA-The Minima Game

    题目大意: 给出N个正整数,AB两个人轮流取数,A先取.每次可以取任意多个数,直到N个数都被取走.每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大.在这样的情况 ...