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 接口

CollectionListSet的父类

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);
}
}
}

SetHashSetSet的实现类 使用

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 点赞

最新文章

  1. 問題排查:沒有任何多載符合 System.Timers.ElapsedEventHandler 委派
  2. java线程技术6_线程的挂起和唤醒[转]
  3. ExtJS组件的xtype属性列表
  4. leetcode 83
  5. MyEclipse卡死解决
  6. 【转载】C内存对齐
  7. 用PL0语言求Fibonacci数列前m个中偶数位的数
  8. html 标签释义
  9. poj 3778
  10. 34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法 实现输出大写英文字母表的功能,
  11. PHP设计模式四:适配器模式
  12. ECMA262学习笔记(一)
  13. 【JavaScript】对象
  14. Visual Studio 2010 VS IDE 编辑界面出现绿色的点 去掉绿色的空格点
  15. C# 图像处理:Bitmap 与 Image 之间的转换
  16. Java-JUC(八):使用wait,notify|notifyAll完成生产者消费者通信,虚假唤醒(Spurious Wakeups)问题出现场景,及问题解决方案。
  17. OpenCV 学习笔记03 findContours函数
  18. Up and running with Apache Spark on Apache Kudu
  19. Android 流媒体播放 live streaming
  20. 【android】如何让WebView对Video标签的支持更强力

热门文章

  1. python 将mysql数据库中的int类型修改为NULL 报1366错误,解决办法
  2. js项目练习第二课
  3. AsyncContext的startAsync()方法开启异步
  4. 谷歌搜索技巧(转)https://www.runningcheese.com/google
  5. 云计算底层技术-虚拟网络设备(Bridge,VLAN)( 转发)
  6. HDU2034
  7. 服务管理之rsync
  8. python爬虫-百度百科百名红通人员名单
  9. Percona XtraBackup使用说明(转)
  10. Maven引入自定义jar包