java集合框架--List、Set、Map
1.List:有序的 collection(也称为序列)。此接口可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的在列表中的位置访问元素,并搜索列表中的元素。列表允许重复的元素。
ArrayList:
特点:有序的、线性的、无固定大小的、有下标的、先进先出
简单操作应用:
public static void main(String args[]) {
- // 创建一个队列对象
- java.util.ArrayList<String> list = new java.util.ArrayList<String>();
- // 装入10个数据
- ; i < 10; i++) {
- String s = "元素" + i;
- //加元素
- list.add(s);
- }
- // 遍历1
- ; i < list.size(); i++) {
- // 根据下标取出一个元素
- String str = list.get(i);
- System.out.print(str+"\t");
- }
- System.out.println();
- //遍历2
- //得到队列的迭代器对象
- java.util.Iterator<String> iter = list.iterator();
- //判断是否有数据可以迭代
- while(iter.hasNext()){
- //取出一个元素
- String str = iter.next();
- System.out.print(str+"\t");
- }
- System.out.println();
- //遍历3
- for(String str:list){
- System.out.print(str+"\t");
- }
2.Set:是简单的集合,它的对象不按特定方式排序,只是简单的把对象加入集合中。不能有重复对象。
HashSet:
特点:无序的,长度可变的,不可重复的
简单的操作应用:
public static void main(String args[]) {
- // 创建一个容器对象
- java.util.HashSet<String> sets = new java.util.HashSet<String>();
- // 装入10个元素
- ; i < 10; i++) {
- String s = "元素a" + i;
- sets.add(s);
- }
- //检验若输入加入重复的元素,在集合中的是原来的还是新加入的(结果表明是原来的)
- boolean b = sets.add("新来的");
- boolean b1 = sets.add("新来的");
- System.out.println(b + "<>" + b1);
- // 遍历1
- // 得到迭代器对象
- java.util.Iterator<String> iter = sets.iterator();
- while (iter.hasNext()) {
- String str = iter.next();
- System.out.print(str + "\t");
- }
- System.out.println();
- //遍历2
- for(String str:sets){
- System.out.print(str+"\t");
- }
3.Map:Map中存入的对象是一对一对的,即每个对象和它的一个名字(键:key)关联在一起,一个键(key)只能对应一个值(value),反则不然。
HashMap:
特点:无序的、不可重复的
简单的操作应用:
public static void main(String args[]) {
- // 创建一个映射对象
- java.util.HashMap<Integer, String> maps = new java.util.HashMap<Integer, String>();
- // 装入键值对
- ; i < 20; i++) {
- ;
- String name = "学生" + i;
- // 装入一个键值对
- maps.put(num, name);
- }
- //增加一个键值对,加入K相同的键值对,则会替换已经存在的键值对
- , "新学生");
- , "新学生");
- , "又来一个");
- //遍历
- //得到K的Set集合
- java.util.Set<Integer> set = maps.keySet();
- //遍历K的集合,得到set的迭代器
- java.util.Iterator<Integer> iter = set.iterator();
- while(iter.hasNext()){
- //取出一个key
- int num = iter.next();
- //根据key得到对应的Value
- String name = maps.get(num);
- System.out.println(num+"\t"+name);
- }
两个应用:
1.package hpw.collection;
- /**
- * 任意的一个数组,重复排序
- *
- * @author
- *
- */
- public class Task1 {
- public static void main(String args[]) {
- // 创建一个数组
- , 345, 467, 45, 786, 133, 456, 89, 45,
- , 786, 467, 123, 456 };
- int[] temp = RemoveRepeat(array);
- // 出去重复后,打印数组
- ; i < temp.length; i++) {
- System.out.print(temp[i] + "\t");
- }
- System.out.println();
- int[] newarray = sort(temp);
- // 排序后,打印数组
- ; i < newarray.length; i++) {
- System.out.print(newarray[i] + "\t");
- }
- }
- /**
- * 去除数组中重复的元素
- *
- * @param base
- * :要去除的数组
- * @return:去除重复后的数组
- */
- public static int[] RemoveRepeat(int[] base) {
- // 创建一个集合
- java.util.HashSet<Integer> sets = new java.util.HashSet<Integer>();
- // 遍历数组,将元素装入集合
- ; i < base.length; i++) {
- int temp = base[i];
- // 将元素装入集合
- sets.add(temp);
- }
- //创建一个新的数组
- int[] newarry=new int[sets.size()];
- // 得到迭代器
- java.util.Iterator<Integer> ite = sets.iterator();
- // 遍历集合,将元素装入队列
- ; ite.hasNext(); i++) {
- newarry[i] = ite.next();
- }
- return newarry;
- }
- /**
- * 将数组排序
- *
- * @param base
- * :原数组
- * @return:排序后的数组
- */
- //冒泡排序
- public static int[] sort(int[] base){
- ;i<base.length;i++){
- ;j<base.length;j++){
- if(base[i]>base[j]){
- int temp=base[i];
- base[i]=base[j];
- base[j]=temp;
- }
- }
- }
- return base;
- }
- }
2.package hpw.collection;
- import java.util.HashMap;
- /**
- * 统计重复
- * @author lenovo
- *
- */
- public class Task2 {
- public static void main(String args[]){
- // 创建一个数组
- , 345, 467, 45, 786, 133, 456, 89, 45,
- , 786, 467, 123, 456,45 };
- //创建一个映射
- java.util.HashMap<Integer, Integer> map=new java.util.HashMap<Integer, Integer>();
- //统计
- map=count(array);
- //打印
- print(map);
- }
- /**
- * 统计出现的次数
- * @param base:原数组
- * @return:java.util.HashMap<Integer:数组元素, Integer:出现的次数>
- */
- public static java.util.HashMap<Integer, Integer> count(int[] base){
- //创建一个映射
- java.util.HashMap<Integer, Integer> maps=new java.util.HashMap<Integer, Integer>();
- //遍历数组,出现重复,value+1
- ;i<base.length;i++){
- //判断是否出现重复
- if(maps.containsKey(base[i])){
- ;
- maps.put(base[i], value);
- }else{
- );
- }
- }
- return maps;
- }
- /**
- * 打印队列
- * @param map
- */
- public static void print(HashMap<Integer, Integer> map){
- //创建一个集合,得到K的元素
- java.util.Set<Integer> set=map.keySet();
- //遍历集合,获得迭代器
- java.util.Iterator<Integer> ite=set.iterator();
- while(ite.hasNext()){
- //去除key
- int key=ite.next();
- //得到相应的value
- int value=map.get(key);
- System.out.println(key+"\t"+value);
- }
- }
- }
java集合框架--List、Set、Map的更多相关文章
- Java集合框架List,Map,Set等全面介绍
Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I] +--java.util.ArrayList [C] +- ...
- 【转】Java集合框架List,Map,Set等全面介绍
原文网址:http://android.blog.51cto.com/268543/400557 Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含 ...
- 34、Java集合框架List,Map,Set等全面介绍(转载)
Java Collections Framework是Java提供的对集合进行定义,操作,和管理的包含一组接口,类的体系结构. Java集合框架的基本接口/类层次结构: java.util.C ...
- java 集合框架(十六)Map
一.概述 Map是一个包含键值对的集合,一个map不能有重复的键(key),而且每个键至多只能对应一个值.Map同Collection一样,它的所有通用实现都会提供一个转换器构造函数,接收一个Map类 ...
- Java集合框架之map
Java集合框架之map. Map的主要实现类有HashMap,LinkedHashMap,TreeMap,等等.具体可参阅API文档. 其中HashMap是无序排序. LinkedHashMap是自 ...
- 【JAVA集合框架之Map】
一.概述.1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...
- Java集合框架中Map接口的使用
在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...
- 我所理解Java集合框架的部分的使用(Collection和Map)
所谓集合,就是和数组类似——一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接 ...
- 【由浅入深理解java集合】(一)——集合框架 Collction、Map
本篇文章主要对java集合的框架进行介绍,使大家对java集合的整体框架有个了解.具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set,List,Queue. ...
- 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...
随机推荐
- acm入门搜索-水池数目
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处 ...
- 错误 frm-40654 记录已经被另一个用户更新,重新查询以查看修改
导致这问题的原因有多个,有些是最近在项目上发现不同于网上其他人遇到的 网上一般来说大家都说有如下几个原因.但是在项目上做返利时 对AP invoice 的有做更改,导致更改或插入的数据在界面上修 ...
- iOS开发之三:常用控件--UILabel的使用
UILabel 一般用来显示文本内容. 常用的属性如下: @property(nonatomic,copy) NSString *text; // 文本的内容,默认为 nil @property(no ...
- 北大青鸟Asp.net之颗粒归仓
自从小编走进编程的世界以来,学习的编程知识都是和C/S这个小伙伴握手,直到做完牛腩老师的新闻发布系统,才开始了小编的B/S学习生涯,和B/S初次谋面,小宇宙瞬间爆发了,看着自己的第一个B/S系统,牛腩 ...
- 用SpriteBuilder简化"耕牛遍地走"的动画效果(二)
首先使用SpriteBuilder新建一个项目,将之前下载的资源文件夹拖入SpriteBuilder的文件视图. 这里我们只需要一步操作就可以完成原文中在Texture Packer中的那么多操作:即 ...
- 【一天一道LeetCode】#94. Binary Tree Inorder Traversal
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- C++在单继承、多继承、虚继承时,构造函数、复制构造函数、赋值操作符、析构函数的执行顺序和执行内容
一.本文目的与说明 1. 本文目的:理清在各种继承时,构造函数.复制构造函数.赋值操作符.析构函数的执行顺序和执行内容. 2. 说明:虽然复制构造函数属于构造函数的一种,有共同的地方,但是也具有一定的 ...
- UVa - 1618 - Weak Key
Cheolsoo is a cryptographer in ICPC(International Cryptographic Program Company). Recently, Cheolsoo ...
- Linux 下源码安装大杂烩
本文仅以记录平常源码安装部分软件是需注意的关键点. 有时为了方便,如在 Ubuntu 系统中,采用 sudo apt-get install soft-version 来安装某一版本的软件显得更为便捷 ...
- Unity热更新之C#反射加载程序集
用C#反射加载程序集的方式可以动态的从assetBundle资源包或其他资源包里加载脚本到工程中,即便是原工程中不存在的脚本. 我这里就用加载本地assetBundle的方式来进行讲解了,加载网络上的 ...