map集合和set集合
一、Vector
1 、java中提供的最早的集合,一个动态数组,与ArrayList相似,但是两者不同:
(1)Vector是同步访问的
(2)Vector包含了很多传统的方法,这些方法不属于集合框架
(3)Vextor主要用于实现不知道数组的大小,或者重视需要一个可以改变大小的数组的情况
2 、枚举 Enumeration 迭代器的前身 与Iterator功能类似
二、Set 接口 (是Collection的子接口 Collection是容器的意思)
1、Set接口不能存储重复的元素,不按照元素存储顺序排列,Set接口有三个实现类,分别是 HashSet、LinkedHashSet、TreeSet,主要是HashSet
2、
创建对象:Set<String> s=new HashSet<String>();
主要方法:
s.add();添加元素
用增强for循环和迭代器对集合元素输出:
public static void main(String[] args){
Set<String> s=new HashSet<String>();//创建对象
s.add("aa");
s.add("bb");
s.add("cc");
//当出现重复的元素时,后边的覆盖前边的
s.add("aa");
//增强for循环 for(集合元素类型 给元素起的名:集合名称){}
for(String s1:s){
System.out.println(s1);
}
//迭代器 对象s调用Iterator()方法创建了一个迭代器
Iterator(String) it=s.iterator();//迭代器(要迭代集合的数据类型) 迭代器对象=集合对象.iterator();
while(it.hasNext()){ //it.hasNext()判断集合中是否还有下一个元素
System.out.println(it.next()); //next()将元素提取出来
}
}
三、Map接口 (不是Collection子类)
1、定义:Collection的子类存储对象都是向集合中一个一个放,像Set<String> s=new HashSet<String>();
而Map接口是成对存储,包括key值和Value值,key和Value一一对应,可以通过键值获取值HashMap<String(key值),String(Value值)> map=new HashMap<String,String>();
2、Map集合中不能包含重复键,但可以包含重复的值
3、子类有HashMap和LinkedHashMap等
4、主要方法:put(添加) get(提取) remove(key)(移除)
public class MapDemo1 {
//map中put是添加值
public static void main(String[] args){
Map<Integer,String> map=new HashMap<Integer, String>();
map.put(1,"aa");
map.put(2,"bb");
map.put(3,"cc");
//键值不能重复,如果重复就覆盖之前的值
map.put(3,"nn");
map.put(100,"100");
System.out.println(map.get(3));
System.out.println(map);
System.out.println(map.get(66));
System.out.println(map.remove(1));
System.out.println(map);
}
}
5、LinkedHashMap的打印出来的元素顺序和键入的顺序无关
public class LinkedHashMapDemo {
public static void main(String[] args){
//LinkedHadhMap的打印顺序是根据数据输入的先后顺序
LinkedHashMap<String,String> m=new LinkedHashMap<String,String>();
m.put("1","a");
m.put("2","b");
m.put("3","c");
m.put("5","d");
m.put("4","e");
System.out.println(m);
}
}
6、Map集合的遍历方式 keySet()和entrySet()
Map集合没有迭代器的接口,没有办法进行遍历,所以先映射进Set集合再进行迭代
keySet()是只把键映射到Set集合,entrySet()是把键和值都映射到Set集合
keySet()方法:
public class MapDemo2 {
public static void main(String[] args){
Map<String,String> map=new HashMap<String, String>();
map.put("北凉","徐凤年");
map.put("北凉1","温华");
map.put("北凉2","老黄");
Set<String> set=map.keySet();
System.out.println(set);
Iterator<String> it=set.iterator();
while (it.hasNext()){
String value=it.next();
System.out.println(map.get(value));
}
System.out.println("=========================");
for (String se:set) {
System.out.println(map.get(se));
}
}
}
Map嵌套中使用entrySet()方法(也可使用keySet()方法):
public class MaoMapDemo {
public static void main(String[] args){
//定义Java班集合
HashMap<String,String> javas=new HashMap<String, String>();
//定义Hdoop班集合
HashMap<String,String> Hdoop=new HashMap<String,String>();
//向班级里添加学生
javas.put("1","徐凤年");
javas.put("2","小泥人");
Hdoop.put("1","徐龙象");
Hdoop.put("2","徐北枳");
//System.out.println(javas);
//System.out.println(Hdoop);
HashMap<String,HashMap<String,String>> aaa=new HashMap<String,HashMap<String,String>>();
aaa.put("java班",javas);
aaa.put("Hdoop班",Hdoop);
//System.out.println(aaa);
//entrySet1(aaa);
foreachdemo(aaa);
}
//迭代器
// public static void entrySet1(HashMap<String,HashMap<String,String>> aaa){
// //entrySet()将HashMap中值映射到set集合中,键值和值全都映射过去
// Set<Entry<String,HashMap<String,String>>> classNameSet=aaa.entrySet();
// System.out.println(classNameSet);
// //迭代选择
// Iterator<Entry<String,HashMap<String,String>>> it=classNameSet.iterator();
// while (it.hasNext()){
// //System.out.println(it.next());
// //next的类型为Entry<String,HashMap<String,String>>,next的值Hdoop班={1=徐龙象, 2=徐北枳}和java班={1=徐凤年, 2=小泥人}
// Entry<String,HashMap<String,String>> next=it.next();
// System.out.println(next);
// //得到Hdoop这样的key值(班名)
// String classNameKey=next.getKey();
// System.out.println(classNameKey);
// //得到每个班的人名集合
// HashMap<String,String> classMap=next.getValue();
// System.out.println(classMap);
// //人名集合是Map类型,再次映射到set集合
// Set<Entry<String,String>> StudentSet=classMap.entrySet();
// //System.out.println(StudentSet+"==============");
// //对人名集合进行迭代
// Iterator<Entry<String,String>> classit=StudentSet.iterator();
// while(classit.hasNext()){
// Entry<String,String> studentEntry=classit.next();
// String numKey=studentEntry.getKey();
// String numName=studentEntry.getValue();
// System.out.println(numKey+" "+numName);
// }
// }
//
// }
//增强for循环
public static void foreachdemo(HashMap<String,HashMap<String,String>> aaa){
Set<Entry<String,HashMap<String,String>>> classIt=aaa.entrySet();
System.out.println(classIt);
for (Entry<String,HashMap<String,String>> className:classIt) {
System.out.println(className);
Entry<String,HashMap<String,String>> classNameAGe=className;
System.out.println(classNameAGe);
String classKey=classNameAGe.getKey();
HashMap<String,String> classValue=classNameAGe.getValue();
System.out.println(classValue);
Set<Entry<String,String>> StudentSet=classValue.entrySet();
for (Entry<String,String> sksdfk: StudentSet) {
System.out.println(sksdfk);
//Entry<String,String> gggg=sksdfk;
String studentKey=sksdfk.getKey();
String studentName=sksdfk.getValue();
System.out.println(studentKey+ " " +studentName);
}
}
}
}
四 、集合的操作工具 shuffle 生成随机的序列
public static void main(String[] args){
fun1();
}
public static void fun1(){
List<Integer> list=new ArrayList<Integer>();
list.add(1000000);
list.add(1);
list.add(2);
list.add(24);
list.add(198);
list.add(138478);
list.add(1342);
System.out.println(list);
//工具类方法shuffle() 对集合进行随机排列
Collections.shuffle(list);
System.out.println(list);
}
}
转载于:https://www.cnblogs.com/fbbg/p/10623512.html
map集合和set集合相关推荐
- Map集合和List集合总结
Map集合和List集合哪个效率更高 List接口 List集合是一个元素有序(存储有序).可重复的集合,集合中的每个元素都有对应的索引,以便于查询和修改,List集合是允许存储null值的. Lis ...
- Day_8/08(List集合和Set集合)
目录 一.List集合 1.ArrayList集合 2.LinkedList集合 1.增加元素 2.查询元素 3.修改元素 4.删除元素 二.Set集合 1.HashSet集合 2.LinkedHas ...
- scala集合和java集合的转换-List
scala集合和java集合的转换-List scala的List要想转换成java的list 需要导入对应的类scala.collection.JavaConverters._ import jav ...
- 黑马程序员--Java学习日记之集合(map集合和collections类)
-- Java培训.Android培训.iOS培训..Net培训.期待与您交流! --- 一.概述 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 在使用Collec ...
- HashMap集合和TreeMap集合
---------------------------HashMap集合的遍历 /第一种 package ji_he;import java.util.*;public class Example16 ...
- Set集合和List集合
List:有序可重复 ArrayList: 写入数据时,数据在尾部的时候快,取数快 LinkedList: 集合中间部分添加值和删除值得时候快 Set:不包含重复元素,但是无序, ...
- 7.Set集合总结(TreeSet集合和HashSet集合)
一.Set集合 1.Set集合特点 可以去除重复 存取顺序不一致 没有带索引的方法,所以不能使用普通的for循环遍历,也不能通过索引来获取.删除Set集合里面的元素. 2.Set集合中元素的遍历 二. ...
- HashSet集合和TreeSet集合
-----------------------------------HashSet集合 ///HashSet集合的遍历 package ji_he;import java.util.HashSet; ...
- Scala的List集合和Set集合
Nil是一个空的不可变的集合 List集合:有序的,可重复的 Set集合是不可重复的,无序的 val set=Set(1,2,2,1,4,3)//输出Set(1, 2, 4, 3),因为Set集合是不 ...
- List集合和set集合
List集合中的元素允许重复,各元素的顺序就是对象插入的顺序,类似于java数组,用户可通过使用索引(元素在集合中的位置)来访问集合中的元素. List接口继承了Collection借口,因此包含了C ...
最新文章
- 计算机科学在生物信息中的应用,生物信息学在基因组学中的应用
- FileZilla 服务器端win server2008以上的配置
- java 循环笔记_Java笔记之嵌套循环1
- Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
- 博文视点读书节第五日丨IT大咖私房书单继续放送,超级会员返场来袭!
- mysql:赋予用户权限、查看及修改端口号
- POI--各种样式的XSSFCellStyle的生成
- Motorola(摩托罗拉)比较不错的机子,直接秒杀诺基亚N8,不看看你会后悔的哦。。。...
- Native method not found: com.autonavi.amap.mapcore.MapProjection.nativeLonLat2Geo:(DDLcom/autonavi/a
- pageHelper.startPage(m,n)的用法
- 疾病抗争从未停止,糖尿病数据可视化分析
- JavaScript程序库jQuery学习笔记分享(二)jQuery对象和DOM操作,和其他js库冲突处理
- 网络测速一原理及实例
- Vue 实现下拉加载更多
- Ubuntu 16.04 LTS设置屏幕分辨率并永久保存所设置的分辨率
- 【20保研】中南大学计算机学院2019年全国优秀大学生暑期夏令营通知
- 图像分割:LR-ASPP模型介绍
- 华为服务器设备型号查询,查询服务器型号和操作系统
- python文件拓展名是_python文件扩展名是什么
- 原来微信就能生成证件照,再也不傻傻地往照相馆跑了,办法很简单
热门文章
- 职业发展的明线与暗线
- 如果有人问你爬虫抓取技术的门道,请叫他来看这篇文章
- java中的match函数_javascript中match函数的用法小结
- Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】
- 三大变换与自控(五)三角函数的正交性证明
- 计算机语言的正交性,什么是“正交性”?
- 科目三: 济南章丘五号线
- JAVA 循环结构while简单方法使用
- 一筐鸡蛋c语言编程,求答案-求答案?一筐鸡蛋?求答案?一筐鸡蛋:1个1个拿,正好拿完2个2 爱问知识人...
- Unity-创建一个小地图