博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合类
阅读量:4653 次
发布时间:2019-06-09

本文共 3306 字,大约阅读时间需要 11 分钟。

一、集合类与数组的区别

1.集合的长度可变,数组的长度固定;

2.集合用来存放对象引用,数组用来存放基本类型的数据;

二、集合类的关系

1.Collection接口

存储一组不唯一、无序的对象。

 

2.List接口

存储一组不唯一、有序(插入顺序)的对象。

2.1实现类:ArrayList类、LinkedList类

ArrayList类:实现长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率较高。

ArrayList类常用方法

add()  addAll()  clear()  size()  iterator()  get()  set()

LinkedList类:采用链表存储方式,插入、删除元素时效率较高。

add()  addAll()  addFirst()  addLast()  clear()  remove()  size()  iterator()  get()  set()

 

3.Set接口

存储一组唯一、无序的对象。

唯一性:在添加对象时,会先采用对象的equals()方法与当前已有的对象的HashCode进行比较(重写了equals()方法的除外),如果没有相同的对象,则添加新的对象。

无序性:没有get()方法,无法通过下标遍历Set集合。

遍历set集合方法:

1.通过迭代器Iterator

public static void main(String[] args){    Set
set = new HashSet
(); set.add("c"); set.add("a"); set.add("c"); set.add("b"); Iterator
it = set.iterator(); while (it.hasNext()) { String str = (String) it.next(); System.out.print(str + " "); }}

输出结果:a b c

2.增强型for循环

public static void main(String[] args) {    Set
set = new HashSet
(); set.add("c"); set.add("a"); set.add("c"); set.add("b"); for (Object obj : set) { String str = (String) obj; System.out.println(str); }}

输出结果:a b c

 

4.Map接口

存储一组键值对象,提供key到value的映射。

输出所有的key值:keySet()方法,返回键的Set视图;

输出所有的values值:values()方法,返回值的Collection视图;

获得所有的键值对:entrySet()方法,返回键值对的Set视图。

public static void main(String[] args) {    Map
map = new HashMap<>(); map.put("java", "课堂学习"); map.put("Html", "视频学习"); // 获得所有键值对的集合 Set
> entrySet = map.entrySet(); // 集合中对象的类型为Map.Entry // 方法一:通过增强型for循环 for(Object obj:entrySet) { String key = ((Map.Entry) obj).getKey().toString(); String value = ((Map.Entry) obj).getValue().toString(); System.out.println(key + "---" + value); } // 方法二:通过迭代器Iterator Iterator
> it1; it1 = entrySet.iterator(); while(it1.hasNext()){
Map.Entry
me = it1.next(); String key1 = me.getKey(); String value1 = me.getValues(); System.out.println(key1 + "---" + value); } Iterator
it; System.out.println("key值:"); // 获得所有键的集合 Set
set = map.keySet(); // 集合中对象的类型为String it = set.iterator(); while (it.hasNext()) { System.out.print(it.next() + "\t"); } System.out.println("\nvalues值:"); // 获得所有值的集合 Collection
coll = map.values(); // 集合中对象的类型为String it = coll.iterator(); while (it.hasNext()) { System.out.print(it.next() + "\t"); } System.out.println("键值对:"); // 获得所有键值对的集合 Set set1 = map.entrySet(); System.out.println(set1);}

 

 

public static void main(String[] args) {    Map
map = new HashMap<>(); map.put("java", "课堂学习"); map.put("Html", "视频学习"); Iterator
it; System.out.println("key值:"); // 获得所有键的集合 Set
set = map.keySet(); it = set.iterator(); while (it.hasNext()) { System.out.print(it.next() + "\t"); } System.out.println("\nvalues值:"); // 获得所有值的集合 Collection
coll = map.values(); it = coll.iterator(); while (it.hasNext()) { System.out.print(it.next() + "\t"); } System.out.println("键值对:"); // 获得所有键值对的集合 Set set1 = map.entrySet();     System.out.println(set1); }

 

转载于:https://www.cnblogs.com/YeHuan/p/10740990.html

你可能感兴趣的文章
jQuery源码浅析
查看>>
前端学习笔记day05 第一个页面--header部分
查看>>
Calculate difference between consecutive data points in a column from a file
查看>>
es6 String.raw()
查看>>
json格式字符串转字典
查看>>
HTML5新特性之History
查看>>
在线编辑器CKEditor,多图上传功能实现
查看>>
[转]将java程序安装成windows服务
查看>>
292301_点击流仓库
查看>>
day11am
查看>>
2.写一个函数,将小写字母转为大写
查看>>
LeetCode8.字符串转换整数(atoi) JavaScript
查看>>
刷面经笔记2019.02.07
查看>>
HDU3790最短路径问题
查看>>
R掷硬币500次,出现真面朝上的概率
查看>>
滤霸投票
查看>>
mysql 示例数据库安装
查看>>
linux物理网卡检测命令mii-tool
查看>>
XDroidMvp 轻量级的Android MVP快速开发框架
查看>>
Android 禁止软键盘自动弹出
查看>>