一、数组:同一个类型数据的集合,其实他也是一个容器

  1、数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些数据

  2、数组的定义:

      在Java中常见:

        格式1:  类型 [] 数组名 = new 类型[数组长度或数组元素的个数];    例如:  int [] dada = new int[3];

        格式2:  类型 [] 数组名 = new 类型[]{值1,值2,值3……};          例如:  int [] data = new int{1,2,3,……};

      和上边的意思一模一样,更符合用用过C语言编程的程序员的编程习惯:

        格式1:  类型  数组名 [] = new 类型[数组长度或数组元素的个数];    例如:  int dada [] = new int[3];

         格式2:  类型  数组名 [] = new 类型[]{值1,值2,值3……};          例如:  int data [] = new int{1,2,3,……};

  3、数组的遍历方式:通过属性length获取该数组的元素个数。

             使用方式:  数组名称.length

            例如:

            public static void main(String[] args) {
              int data[] = new int[3];
              for(int i=0;i<data.length;i++)
                  data[i]=i;
              for(int i=0;i<data.length;i++)
              System.out.println("数组data的第"+i+"个数字为"+data[i]);
            }             输出结果为:                 数组data的第0个数字为0
                数组data的第1个数字为1
                数组data的第2个数字为2

二、集合-Collection: 分为List、Set两种。

  1、List:元素是有序的,元素可以重复,因为该集合体有索引

    a)、ArrayList:底层数据结构使用的数据结构。特点是:查询速度快,增删速度慢,线程不同步。

    b)、LinkedList:底层使用的链表数据结构。特点查询速度慢,增删速度快,线程不同步。

    c)、Vector:底层数据结构,线程同步。

  2、Set:元素是无序的,元素不可以重复。

    a)、HashSet:d

    b)、TreeSet:可以set集合中的元素进行排序,线程不同步。

三、集合-Map

  1、Map:存储键值对

    a)、HashMap:底层是哈希表数据结构,可以存入null作为键或值,线程不同步

    b)、HashTable:底层是哈希表数据结构,不可以存入null作为键或值,线程同步。

    c)、TreeMap:底层是二叉树结构,线程不同步。

四、泛型:用于解决安全问题,是一个类型安全机制。

    泛型在集合框架中很常见,只要见到<>就要定义泛型

    当使用集合时,将集合中要存储的数据类型作为参数传递到<>中即可

五、遍历:即查询集合中的所有元素。

  1、利用size()和get()方法获取。因为List是有序的,所以可以用这种分方法来遍历。

@Test
public void Test(){
List<String> list = new ArrayList<String>();
list.add("DDDDD");
list.add("EEEEE");
list.add("FFFFF");
print(list);
//因为list有顺序,利用size()和get()方法获取
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}

  2、利用Iterator迭代器进行遍历

@Test
public void test(){
List list = new LinkedList();
list.add("123");
list.add("456");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}

  3、增强for循环

@Test
public void test(){
List list = new LinkedList();
list.add("123");
list.add("456");
for(List a : list)
System.out.println(a);
}

  4、对于Map的遍历方式

@Test
public void test() {
Map<String,String> map = new TreeMap<String, String>();
map.put("Jerry", "10000");
map.put("shellway", "20000");
map.put("Kizi", "30000");
print(map.entrySet());
//Map的第一种遍历方式:先获得key的集合,再获得值value
Set<String> sett = map.keySet();
for (String s : sett) {
System.out.println(s+":"+map.get(s));
}
//Map的第二种遍历方式:获得键值对
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}

五、集合和数组的区别:

  1、数组长度是不变的,集合长度是可变的。

  2、数组存储相同的类型对象,集合可以存储不同类型的对象。

            

5、数组和集合--Collection、Map的更多相关文章

  1. [UE4]换枪需要做的事,容器:数组、集合、Map

    换枪: 1.需要同时保存多把枪 2.换下去的枪需要隐藏,而不是销毁 3.换枪应该有动作 4.不同的枪应该有不同的行为 蓝图中常见的容器 1.数组 特点: 1.元素连续存放 2.通过索引访问 3.索引从 ...

  2. Java集合Collection&Map

    Map<K,V>是键值对,K - 此映射所维护的键的类型,V - 映射值的类型.键值是一一对应的关系: Collection是只有键,底层也是由键值对,但是值的类型被隐藏起来. Colle ...

  3. JAVASE(十四) 集合: 数组和集合、Collection、Iterator、List、Set、Map

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 ...

  4. Java 学习笔记 两大集合框架Map和Collection

    两大框架图解 Collection接口 由第一张图,我们可以知道,Collection接口的子接口有三种,分别是List接口,Set接口和Queue接口 List接口 允许有重复的元素,元素按照添加的 ...

  5. Java学习笔记(2)----散列集/线性表/队列/集合/图(Set,List,Queue,Collection,Map)

    1. Java集合框架中的所有实例类都实现了Cloneable和Seriablizable接口.所以,它们的实例都是可复制和可序列化的. 2. 规则集存储的是不重复的元素.若要在集合中存储重复的元素, ...

  6. Collection集合与Map集合的知识点梳理

    在Java中集合分为单列集合(Collection)与双列集合(Map),本文主要对两种集合的常用实现类作一介绍,如果有不足,恳请指教更正. 1.前言 说到集合肯定要介绍下集合的概念与特点:集合是一个 ...

  7. Java集合 Collection、Set、Map、泛型 简要笔记

    集合 什么是集合 概念 对象的容器,实现了对对象常用的操作 和数组的区别 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能存储引用类型 位置 java.util.*; Colle ...

  8. 零基础学习java------day14-----泛型,foreach,可变参数,数组和集合间的转换,Set,Map,

    1.泛型(jdk1.5以后出现) https://www.cnblogs.com/lwbqqyumidi/p/3837629.html#!comments (1)为什么要用泛型? 限制集合,让它只能存 ...

  9. paip.数组以及集合的操作uapi java php python总结..

    paip.数组以及集合的操作uapi 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att ...

随机推荐

  1. OrCAD Capture使用记录

    1.安装 ①修改host_ID为主机名称(如果填不对,安装过程会提示你再填一次):其后跟的是机子的MAC地址,用ipconfig /all 可以查看. ②下一行的FLEMlm,后面跟的是文件cdslm ...

  2. HDU 1535 Invitation Cards(最短路 spfa)

    题目链接: 传送门 Invitation Cards Time Limit: 5000MS     Memory Limit: 32768 K Description In the age of te ...

  3. FZU 1752 A^B mod C(快速加、快速幂)

    题目链接: 传送门 A^B mod C Time Limit: 1000MS     Memory Limit: 65536K 思路 快速加和快速幂同时运用,在快速加的时候由于取模耗费不少时间TLE了 ...

  4. 【Beta】Scrum02

    Info *由于28日大家事情比较多,推迟了一天 时间:2016.11.29 21:30 时长:10min 地点:大运村1号公寓5楼楼道 类型:日常Scrum会议 NXT:2016.12.01 21: ...

  5. 怎样查看MySQL是否区分大小写

    MySQL默认情况下是否区分大小写,使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分.

  6. MySql视图、存储过程、函数、索引

    一.视图 视图是查询命令结果构成的一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集合,并可以当作表来查询使用. 1创建视图 - ...

  7. 20145212《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDE)

    20145212<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDE) 实验内容及步骤 1.命令行下的JAVA程序开发 建立并进入实验目录: 撰写简单的Hello ...

  8. python判断字符串

    python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...

  9. CodeForces 701C They Are Everywhere (滑动窗口)

    题目链接:http://codeforces.com/problemset/problem/701/C 题意:找到字符串中能包含所有元素的最短字符串长度. 利用“滑动窗口”解题 解题思路: 1. 遍历 ...

  10. VC----文件图标和窗口图标及在任务栏显示的图标

    WNDCLASSEX wndcls; wndcls.cbSize=sizeof(wndcls); wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hb ...