第41节:Java当中的类集框架
Java当中的类集框架
类集框架,那么什么是类集框架,集合的种类有哪些,类集框架的基础结构。
类集框架是一组类和接口的集合,位于java.util
包当中,是用来用户存储和管理对象的,在这个类集合框架中,我们主要学习的为三大类,分别是集合,列表和映射。
集合,列表,映射
Set为集合,在集合中的对象是不按照顺序排列的,并且是没有重复的对象的。简单为:无序,无重复。
List为列表,中在列表中的对象是由顺序的排序的,并且是有重复的对象。
Map为映射,在集合中的每个元素都有一个键对象和一个值对象,在Map中键是不可以重复的,值是可以重复的。
类集合框架主体
集合框架的构成及分类
顶级Iterator和Collection
import java.util.List;
import java.util.ArrayList;
public class Demo{
public static void main(String args[]){
// 创建列表的实现类对象
ArrayList<String> arrayList = new ArrayList<String>();
// 添加数据
arrayList.add("a");
arrayList.add("b");
arrayList.add("c");
// 移除
arrayList.remove(1);
// 获取数据
String s = arrayList.get(1);
System.out.println(s);
// 获取长度
int a = arrayList.size();
// 打印所有元素
for(int i=0; i<arrayList.size(); i++){
String s = arrayList.get(i);
System.out.println(s);
}
}
}
类集合框架是
jdk
提供的一类类和接口,主要掌握集合,列表,映射,集合是无序的,集合中的元素不允许是重复的,列表是有序的,列表中的元素是允许重复的,映射是以键值对的方式来存储数据,键是不可重复的,值是可以重复的。
Collection 和 Iterator 接口
Collection
是List
和Set
的父类
Collection
接口的方法
方法 | 说明 |
---|---|
int size() |
返回集合中元素的数目 |
boolean add(Object obj) |
向集合中添加对象 |
remove(Object obj) |
从集合中删除一个元素 |
void clear() |
删除集合当中的所有对象 |
boolean isEmpty() |
判断集合是否为空 |
Set 和 HashSet 为Set的实现类 使用
import java.util.Set;
import java.util.HashSet;
public class Demo{
public static void main(String args[]){
HashSet<String> hashSet = new HashSet<String>();
Set<String> set = hashSet;
// 实现类向上转型为接口
// 同理 Set<String> set = new HashSet<String>();
// 添加元素
set.add("a");
set.add("b");
set.add("c");
set.add("d");
// 获取集合中的元素长度
int a = set.size();
}
}
Iterator
接口 迭代器对象
Iterator - > Collection -> Set - > HashSet
hasNext() next()
it.hasNext()
是否还有元素
it.next()
取出元素
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
public class Demo{
public static void main(String args[]){
HashSet<String> hashSet = new HashSet<String>();
Set<String> set = hashSet;
// 实现类向上转型为接口
// 同理 Set<String> set = new HashSet<String>();
// 添加元素
set.add("a");
set.add("b");
set.add("c");
set.add("d");
// 迭代器 iterator() 遍历整个set
// 通过迭代器取出集合中的对象
Iterator<String> it = set.iterator<String>();
while(it.hasNext){
String s = it.next();
System.out.println(s);
}
}
}
Set
和HashSet
为Set
的实现类 使用
Iterator -> Collection -> Set -> HashSet
Iterator -> Collection -> List -> ArrayList
hasNext()
判断是否还有下一个元素
next()
取出这个元素,然后把游标移动到下一位
Map 与 HashMap(Map的实现类) 的使用
Map
为映射,映射中的每个元素都有一个键对象和一个值对象,在Map
中键是不可以重复的,值是可以重复的。从jdk1.2
有了这个类。
java.util
Interface Map<K,V>
K - the type of keys maintained by this map
V - the type of mapped values
Map
是一种对象,将keys
键和values
值建立起一种映射关系,一个map
不能有重复的keys
,每个key
只能唯一映射到一个值。
方法 | 说明 |
---|---|
put(K key, V value) |
向map 当中添加一个键值对 |
get(Object key) |
获取值 |
import java.util.Map;
import java.util.HahMap;
public class Demo{
public static void main(String args[]){
HashMap<String,String> hasMap = new HashMap<String,String>();
Map<String,String> map = hasMap;
// 向上转型
// 同理 Map<Stirng,String> map = new HashMap<String,String>();
// put() 用来存放键值对
map.put("1","a");
map.put("2","b");
map.put("3","c");
// 获取长度
int i = map.size();
// 获取键为2的值
String s = map.get("2");
}
}
在
Map
中键是不可以重复的,值是可以重复的。如果map
中添加一样的键,那么新的值会覆盖老的值。
往后余生,唯独有你
简书作者:达叔小生
90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通
简书博客: https://www.jianshu.com/u/c785ece603d1
结语
- 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
- 小礼物走一走 or 点赞
最新文章
- 問題排查:沒有任何多載符合 System.Timers.ElapsedEventHandler 委派
- java线程技术6_线程的挂起和唤醒[转]
- ExtJS组件的xtype属性列表
- leetcode 83
- MyEclipse卡死解决
- 【转载】C内存对齐
- 用PL0语言求Fibonacci数列前m个中偶数位的数
- html 标签释义
- poj 3778
- 34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法 实现输出大写英文字母表的功能,
- PHP设计模式四:适配器模式
- ECMA262学习笔记(一)
- 【JavaScript】对象
- Visual Studio 2010 VS IDE 编辑界面出现绿色的点 去掉绿色的空格点
- C# 图像处理:Bitmap 与 Image 之间的转换
- Java-JUC(八):使用wait,notify|notifyAll完成生产者消费者通信,虚假唤醒(Spurious Wakeups)问题出现场景,及问题解决方案。
- OpenCV 学习笔记03 findContours函数
- Up and running with Apache Spark on Apache Kudu
- Android 流媒体播放 live streaming
- 【android】如何让WebView对Video标签的支持更强力
热门文章
- python 将mysql数据库中的int类型修改为NULL 报1366错误,解决办法
- js项目练习第二课
- AsyncContext的startAsync()方法开启异步
- 谷歌搜索技巧(转)https://www.runningcheese.com/google
- 云计算底层技术-虚拟网络设备(Bridge,VLAN)( 转发)
- HDU2034
- 服务管理之rsync
- python爬虫-百度百科百名红通人员名单
- Percona XtraBackup使用说明(转)
- Maven引入自定义jar包