Java之三大集合框架

xiaoxiao2021-02-28  103

Java之三大集合框架

今天来说说JAVA的集合框架那那些事儿~

首先要知道集合框架是支持泛型技术的

一、List集合

a) A)List的超级父类:Collection

b) ArrayList(重点)

i. 存储数据的方式:底层还是通过数组方式来存储

ii. List集合中,如果定义集合对象的时候,不确定类型,则什么类型对象都可以直接存储进去,取出来统一都是Object,后续需要自己手动强转指定类型

 

iii. 集合设计:泛型方式进行类型指定

1. List<具体类型>

2. 特点:有序队列、可重复的容器

iv. 其他的API

1. 对集合的操作:增(往容器中添加元素) : add  add  addAll

  删(删除指定元素):remove removeAll clear

  查(获取指定元素):get

  改(更新指定元素):set

2. 其他:获取大小:size  判断是否包含:containts  indexOf

例如:

public class Test { public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); ArrayList<String> list1=new ArrayList<String>(); //往队列容器中添加元素 list.add("list"); list.add("arraylist"); list.add("setlist"); //获取指定位置的元素 System.out.println(list.get(1)); //输出队列所有元素 System.out.println(list); //获取首次出现的指定元素的索引 System.out.println(list.indexOf("setlist")); //获取最后一次出现的指定元素的索引 System.out.println(list.lastIndexOf("arraylist")); //校验指定元素是否在该队列中 System.out.println(list.contains("list")); //将list中指定元素加入到list1中 list1.add("list"); System.out.println(list1); //将list列表中元素全部加入list1中 list1.addAll(list); System.out.println(list1); //用指定元素代替列表中指定位置的元素 //list.set(1,"how"); //System.out.println(list); //该列表的大小 System.out.println(list.size()); //清除指定位置的元素 System.out.println(list.remove(0)); //输出清除后的队列所有元素 System.out.println(list); //清空队列 list.clear(); System.out.println(list); //判断该列表是否为空 System.out.println(list.isEmpty()); } } 运行结果:

arraylist [list, arraylist, setlist] 2 1 true [list] [list, list, arraylist, setlist] 3 list [arraylist, setlist] [] true

二、Set集合

c) Set的超级父接口类:Collection

d) Set的相关理解

i. 特点:元素不可重复、无序的

ii. 遍历元素:迭代(迭代器)

iii. 注意:底层并非真正无序,还是遵循hash算法来保证存储顺序(但是我们作为使用者,就理解为无序)

集合中是不能有重复元素,如果你添加一个重复元素进去,就加不进去

e) 常用API操作:增删查

例如:

public class Test { public static void main(String[] args) { HashSet<String> set=new HashSet<String>(); set.add("China"); set.add("Jpan"); set.add("USA"); set.add("England"); //验证set集合元素不能重复 boolean value=set.add("USA"); System.out.println(set.size()); //校验该集合中是否包含指定元素 System.out.println(set.contains("China")); System.out.println(set); System.out.println(value); //清除指定元素 System.out.println(set.remove("USA")); //如何遍历集合 //1获取set迭代器 Iterator<String> ite=set.iterator(); //判断set集合中是否有下一个元素 while(ite.hasNext()){ String str=ite.next(); System.out.println(str); } set.clear(); System.out.println(set); } } 运行结果:

4 true [Jpan, USA, China, England] false true Jpan China England []

三、Map集合

a) Map集合:不是collection的直接接口子类

b) 使用方式

i. 底层使用机制:k+v的存储方式:键值对

ii. 一条数据,是由两部分组成:键和值

 

iii. 如何遍历map集合

 

iv. 如果说放(put)了一个相同的键到map中,则新元素会替换原来的元素,会把替换掉的元素返回出来,你可以接收到,并做后续处理

例如:

public class Test { public static void main(String[] args) { HashMap<String,String> map=new HashMap<String,String>(); //增删查改操作 map.put("a", "China"); map.put("b","Indian"); map.put("c","Itey"); map.put("d","Canada"); //输出该集合 System.out.println(map); //体现可重复性(替换) String old=map.put("b","USA"); //替换后的集合输出 System.out.println(map); //获取指定元素 System.out.println(map.get("d")); //获取代换的元素 System.out.println(old); //遍历map,通过键取值 //1.获取所有的键 Set<String> keys=map.keySet(); //2.获取键集合的迭代器 Iterator<String> ite=keys.iterator(); //3.迭代器的集合 while(ite.hasNext()){ String key=ite.next(); //相应键对应的值 String value=map.get(key); //输出键 System.out.println(key); //输出值 System.out.println(value); } } } 运行结果:

{a=China, b=Indian, c=Itey, d=Canada} {a=China, b=USA, c=Itey, d=Canada} Canada Indian a China b USA c Itey d Canada

 

 

转载请注明原文地址: https://www.6miu.com/read-80768.html

最新回复(0)