栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【java】集合总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【java】集合总结

文章目录
  • 集合框架的基本结构:
    • Collection 接口
      • Collection接口和Collections类有啥区别?
    • List 接口
      • ArrayList 类
      • LinkedList 类
      • Vector类
    • Set 接口
      • HashSet 类
      • TreeSet类
    • Map(mapping 映射) 接口
      • HashMap
      • HashTable
    • 集合的遍历
      • List集合
      • Set集合
      • map集合


数组:就是一种集合
数组的明显缺点:大小是固定的,不可变的

集合框架的基本结构: Collection 接口
			可以存放对个元素的容器,这就是集合
			有的集合是有序的,有的集合是无序的
			有的集合允许重复元素,有的集合不允许有重复元素

Collection接口和Collections类有啥区别?
1 Collection是一个接口规定了集合的基本操作
2 Collections 是一个类,主要来操作集合的
List 接口

列表:有序的
实现类:

ArrayList 类
		是list接口的大小可变数组的实现
		是list接口的实现类
		底层是数组,大小可变
public static void main(String[] args) {
		//定义数组
		int [] arr = new int[5];
		//这里的<>是用来指定元素的类型,这个东西叫泛型
		 ArrayList list = new ArrayList();
		 //这是就创建了一个长度为0的list
		 
		 //添加元素
		 list.add("java");
		 list.add("mysql");
		 list.add(0, "c++");
		 System.out.println(list);
		 //删除元素
		 list.remove(0);//删除指定下标的元素
		 list.remove("java");
		 System.out.println(list);//删除指定的元素
		 
		 //如果是一个存放了整数的List
		 //泛型不能使用基本类型
		 ArrayList list1 = new ArrayList();
		 list1.add(1);
		 list1.add(2);
		 list1.add(3);
		 list1.add(4);
		 list1.add(5);
		 //删除5
		 list1.remove(4);
		 list1.remove(new Integer(5));//删除下标
		 list1.remove(new Integer(5));//指定5删除
		 System.out.println(list1);
		 System.out.println(list1.size());//输出长度
		 //替换
		 list1.set(0, 100); //替换指定下标的元素
		 System.out.println(list1);
		 //清楚所有元素
		 list1.clear();
		 System.out.println(list1);
	}
LinkedList 类
				是list接口的实现类
				底层采用的是链表 
				操作和ArraysList一样

ArraysList与LinkedList的区别
1 底层采用的方式不同 ArraysLIst是数组 LinkedList是链表
2 ArraysList元素查找要快,添加删除慢;
LinkedList元素查找要慢,添加删除快;

Vector类

Vector类和ArrayList基本一样
Vector是线程安全的,是同步的

List是一个有序的集合,因此可以用下标访问元素
get(index) 通过下标来访问元素;

Set 接口 HashSet 类

无序的,允许使用空值null

public class Demo05 {
	public static void main(String[] args) {
		HashSet set = new HashSet();
		//添加
		set.add("java");
		set.add("mysql");
		set.add("c++");
		set.add(null);
		System.out.println(set.size());
		set.add("java");//集合中元素已经存在,添加失败返回false
		System.out.println(set.size());
	}
TreeSet类

可以排序,使用基本一样

Map(mapping 映射) 接口

映射 :A->B
Map接口中的元素必须是一对键值(Key–Value)
可以从集合中,根据Key找到它对应的Value

HashMap

不同步,可以使用空值,空键

public static void main(String[] args) {
		//创建对象
		HashMap map = new HashMap();
		
		//添加元素
		map.put("仝贺", 22);
		map.put("tom", 18); //(键,值)tom和18形成了一个映射关系,被放到了map中
		
		//取出元素
		System.out.println(map.get("tom"));//用map.get方法,通过键取值
		
		//移除键值对
		map.remove("仝贺");
		System.out.println(map.size());//判断,map的长度看是否移除
		
	}
HashTable

同步的,不可以使用空值,空键

集合的遍历 List集合

1 循环下标
2 Foreach (基于迭代器)
3 使用迭代器 Iterator

public static void main(String[] args) {
		ArrayList list = new ArrayList();
		list.add("java");
		list.add("ps");
		list.add("mysql");
		list.add("c++");
		//迭代器
		Iterator it = list.iterator();
		while(it.hasNext()) {//it.hasNext()是否存在下一个,存在循环执行
			
			String s = it.next();//取出迭代器下一个元素
			System.out.println(s);
			
		}
Set集合

不能循环,使用Foreach,使用迭代器

map集合

不能使用循环
1 先将键/值对,生成一个set,然后再遍历

public static void main(String[] args) {
		HashMap map = new HashMap();
		map.put("仝贺", 22);
		map.put("tom", 18);
		map.put("java", 20);
		map.put("jing", 19);
		//遍历
		Set keys = map.keySet();//取出所有的键
		for (String key : keys) {
			System.out.println(key + "-->"+ map.get(key));
			
		}
		Collectionvalues = map.values();
		for (Integer value :values) {
			System.out.println(value);
		}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860465.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号