Java语言的java.until包中提供了一些集合类,这些集合类又被称为容器。说到集合就会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的;数组用来存放基本数据类型,集合从来存放对象的引用。常用的集合有List集合,Map集合与Set集合,其中List与Set实现了Collection接口,他们的继承关系如下图:

Map接口的常用方法:

  Map接口提供了将键 映射到 值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。Map的常用方法如下:

  

方法 返回值 功能描述
put(key,value) Object 向集合中添加指定的key与value的映射关系
get(key) Object 如果存在指定的键对象,则返回该对象对应的值,否则返回null
containsKey(key) boolean 如果此映射包含指定键的映射关系,则返回true
containsValue(value) boolean 如果此映射将一个或多个键映射到指定值,则返回true
keySet() Set 返回该集合中的所有键对象组成的Set集合
values() Collection 返回该集合中所有值对象形成的Collection集合
size() int 返回该集合中所有对象的个数
remove(key)   清除该集合中指定键对象的内容
clear()   清除该集合中所有对象的内容

写法:

Map方法是不能直接被new出来的,所以想要使用Map方法,就要采用Map中的HashMap。写法为:

Map<String,String> list = new HashMap<String,String>();

下面就举个例子:

public static void main(String[] args) {
Map<String,String> list = new HashMap<String,String>();
list.put("zs", "张三家的狗狗");
list.put("lisi","李四家的小狗"); String d = list.get("lisi"); System.out.println(d); Set keys = list.keySet();
Iterator it = keys.iterator();
while(it.hasNext()){
Object obj = it.next();
//System.out.println(obj);
Object v = list.get(obj);
System.out.println(v);
} String s = (String)list.get("zs");
System.out.println(s);
System.out.println(list.containsKey("zs"));
System.out.println(list.containsValue("hello world")); System.out.println(list.size());
list.remove("zs");
System.out.println(list.size());
list.clear();
System.out.println(list.size());
}

输出结果为:

李四家的小狗
李四家的小狗
张三家的狗狗
张三家的狗狗
true
false
2
1
0

Collection接口中List的常用方法:

  List接口继承了Collection接口,因此包含Collection中的所有方法。但是他还有一些适合于自身的常用方法。如下:

  

方法 返回值 功能描述
add(int index,Object obj) void 用来向集合中的指定索引位置添加对象,集合的索引位置从0开始
get(int index) Object 用来获取指定索引位置的对象
contains() boolean 如果列表包含指定的元素,则返回true
indexOf(Object obj) int 该方法返回列表中对象第一次出现的索引位置,如果集合中不包含该元素,则返回-1
lastIndexOf(Object obj) int 该方法返回列表中对象最后一次出现的索引位置,如果集合中不包含该元素,则返回-1
set(int index,e element) Object 用指定元素替换列表中指定位置的元素,返回以前在指定位置的元素
subList(int formIndex,int toIndex) LIst 获取从索引formIndex到toIndex之间的元素对象
size() int 返回该集合中所有对象的个数
remove(int index) Object 用来移除集合中指定索引位置的对象
clear()   清除该集合中所有对象的内容
iterator   返回按适当顺序在列表的元素上进行迭代的迭代器。

  此时我们需要注意的是:List接口中适合于自身的方法都与索引有关。

写法:

  同样的道理,list也是不能被直接new出来的,所以我们也要使用list的ArrayList。写法如下:

List<String> list = new ArrayList<String>();

  下面举个例子:

public static void main(String[] args){
List<String> list = new ArrayList<String>();
list.add("helll world");
list.add("good morning");
list.add("merry christmas");
list.add("happy new year"); for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
} }

输出结果为:

helll world
good morning
merry christmas
happy new year

这里是采用索引号来进行遍历输出所有内容的,下面再一个例子来了解一下迭代器iterator及其他内容的使用:

public static void main(String[] args){
List<String> list = new ArrayList<String>();
list.add("吕布");
list.add("赵云");
list.add("典韦");
list.add("关羽");
list.add("张飞"); list.set(4, "马超"); Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
} System.out.println(list.size());
Object obj ="吕布";
list.remove(obj);
System.out.println(list); list.remove("赵云"); System.out.println(list.size()); System.out.println(list.get(2));
list.clear();
System.out.println(list);
}

输出结果为:

吕布
赵云
典韦
关羽
马超
5
[赵云, 典韦, 关羽, 马超]
3
马超
[]

Collection中Set接口的常用方法:

  Set集合由Set接口和Set接口的实现类组成。Set接口继承了Collection接口,因此包含了Collection接口的所有方法。如下:

方法 返回值 功能描述
add(Object obj) boolean 如果此Set集合中尚未存在指定的元素,则添加此元素
get(int index) Object 用来获取指定索引位置的对象
removeAll(Collection c) boolean 在Set集合中移除包含在指定Collection中的元素
size() int 返回该集合中所有对象的个数
remove(Object obj) boolean 将指定的参数对象移除集合
clear()   清除该集合中所有对象的内容
iterator   返回按适当顺序在列表的元素上进行迭代的迭代器。

  由于Set集合中不允许存在重复值,因此可以使用Set集合中的addAll()方法,将Collection集合添加到Set集合中并除掉重复值。

  来个例子:

public static void main(String[] args){
List<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
list.add("pear");
list.add("apple");
Set<String> set =new HashSet<String>();
set.addAll(list);
Iterator<String> it = set.iterator();
while(it.hasNext()){
System.out.println(it.next()+"\t");
}
}

输出结果为:

banana
apple
pear

  

  

  

  

Java集合类的总结的更多相关文章

  1. Java集合类--温习笔记

    最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...

  2. 做JavaWeb开发不知Java集合类不如归家种地

    Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...

  3. 【转载】Java集合类Array、List、Map区别和联系

    Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...

  4. 摘抄转载前辈们的Java集合类总结

    本文摘自 Blue Sky:http://www.cnblogs.com/hubcarl JAVA 集合类介绍和使用 类关系示意图Iterable(接口) │ └--Collection (接口) ├ ...

  5. Java集合类简单总结(重学)

    java集合类简介(重学) 一.Collection(集合).Map接口两者应该是平行关系吧. 1.Map介绍 Map是以键值(key-value)对来存放的,2个值.通过key来找到value(例: ...

  6. Java集合类中的哈希总结

    JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...

  7. Java集合类: Set、List、Map、Queue使用场景梳理

    本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E ...

  8. Java 集合类详解(含类图)

    0.参考文献 此图中蓝色为抽象类.深红色表示接口(Arrays除外).绿色表示具体容器类 1.java集合类图 1.1 1.2 上述类图中,实线边框的是实现类,比如ArrayList,LinkedLi ...

  9. Java集合类: Set、List、Map、Queue使用

    目录 1. Java集合类基本概念 2. Java集合类架构层次关系 3. Java集合类的应用场景代码 1. Java集合类基本概念 在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的 ...

  10. 基础知识《六》---Java集合类: Set、List、Map、Queue使用场景梳理

    本文转载自LittleHann 相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F% ...

随机推荐

  1. 编写高质量的 Java 代码

    代码质量概述 代码质量所涉及的5个方面,编码标准.代码重复.代码覆盖率.依赖项分析.复杂度分析.这5方面很大程序上决定了一份代码的质量高低. 我们分别来看一下这5方面:编码标准:这个想必都很清楚,每个 ...

  2. 调整Kali Linux的锁屏时间

    调整Kali Linux的锁屏时间   锁屏是保护隐私的一种重要机制.当用户不操作电脑一段时间后,系统会进入锁屏状态.用户需要输入口令,才能重新进入系统.避免因为操作人员离开电脑后,被其他人员利用现有 ...

  3. URAL 2089 Experienced coach Twosat

    Description Misha trains several ACM teams at the university. He is an experienced coach, and he doe ...

  4. LeetCode 412. Fizz Buzz

    Problem: Write a program that outputs the string representation of numbers from 1 to n. But for mult ...

  5. [ACM训练] 算法初级 之 基本算法 之 枚举(POJ 1753+2965)

    先列出题目: 1.POJ 1753 POJ 1753  Flip Game:http://poj.org/problem?id=1753 Sample Input bwwb bbwb bwwb bww ...

  6. bzoj1266最短路+最小割

    本来写了spfa wa了 看到网上有人写Floyd过了 表示不开心 ̄へ ̄ 改成Floyd试试... 还是wa ヾ(。`Д´。)原来是建图错了(样例怎么过的) 结果T了 于是把Floyd改回spfa 还 ...

  7. git上传代码到osc@git

    1.get an account 2.get a ssh-key 3.git setting git config --global user.name "...." git co ...

  8. uboot

    ******************************************day:2014/10/14**************************uboot************* ...

  9. 安卓图标IconFont使用

    一.补充知识:PNG.IconFont.SVG理论 PNG为位图,是由不同的排列和染色的像素点组成的图像,位图的扩大实质是增加单个像素点的大小,故而导致在不同分辨率表现非常糟糕. SVG为可缩放矢量图 ...

  10. Android Activity task 相关属性

    所谓的 task ,是指用户完成某一项任务时与之交互的一组 Activity.比如用户要向开发者汇报 bug,先打开程序主页,然后打开关于页面,再点击报告 bug 按钮,打开编辑邮件页面.当前这三个 ...