10天轻松学习javase第5天下,Java 集合

10天轻松学习javase第5天下,Java 集合

集合的分类:
Collection 接口的接口 对象的集合(单列集合)
├——-List 接口:元素按进入先后有序保存,可重复
│—————-├ LinkedList 接口实现类, 链表, 插入删除, 没有同步, 线程不安全
│—————-├ ArrayList 接口实现类, 数组, 随机访问, 没有同步, 线程不安全
│—————-└ Vector 接口实现类 数组, 同步, 线程安全
│ ———————-└ Stack 是Vector类的实现类
└——-Set 接口: 仅接收一次,不可重复,并做内部排序
├—————-└HashSet 使用hash表(数组)存储元素
│————————└ LinkedHashSet 链表维护元素的插入次序
└ —————-TreeSet 底层实现为二叉树,元素排好序

Map 接口 键值对的集合 (双列集合)
├———Hashtable 接口实现类, 同步, 线程安全
├———HashMap 接口实现类 ,没有同步, 线程不安全-
│—————–├ LinkedHashMap 双向链表和哈希表实现
│—————–└ WeakHashMap
├ ——–TreeMap 红黑树对所有的key进行排序
└———IdentifyHashMap

java 数组和集合的区别:

1、数组可以储存基本数据类型和对象,而集合中只能储存对象(可以以包装类形式存储基本数据类型)。

2、数组的长度是固定的,集合长度是可以改变的。

3、定义数组时必须指定数组元素类型,集合默认其中所有元素都是Object。

4、无法直接获取数组实际存储的元素个数,length用来获取数组的长度,但可以通过size()直接获取集合实际存储的元素个数。

5、集合有多种实现方式和不同的适用场合,而不像数组仅采用分配连续的空间方式。

6、集合以接口和类的形式存在,具有封装,继承和多态等类的特性,通过简单的方法和属性调用即可实现各种复杂的操作,大大提高软件的开发效率。

对象数组与集合的区别:
数组保存的是Java基本数据类型,必须指定容量。集合保存的是对象

	public static void main(String[] args) {

	//对象数组和集合的区别
		
		Users user[] = new Users[3];  //动态初始化
		user[0] = new Users(1,"admin","admin");
		user[1] = new Users(2,"sili","123456");
		
		

		ArrayList<Users> list = new ArrayList<Users>();
		list.add(new Users(1,"admin","admin"));
		list.add(new Users(2,"sili","123456"));
		
		
		
	}

ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高,可以存储重复元素
LinkedList 底层数据结构是链表,查询慢,增删快,线程不安全,效率高,可以存储重复元素
Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素

HashMap:基于哈希表实现。使用HashMap要求添加的键类明确定义了hashCode()和equals()[可以重写hashCode()和equals()],为了优化HashMap空间的使用,您可以调优初始容量和负载因子。
TreeMap:非线程安全基于红黑树实现。TreeMap没有调优选项,因为该树总处于平衡状态。

小结
ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

常用集合的使用

ArrayList集合的使用
	public static void main(String[] args) {

	
		
		 List<String> strlist=new ArrayList<String>();
		 //申明一个存储String类的ArrayList集合
		 
		 strlist.add("《10天轻松学习Javase》");
		 strlist.add("《10天轻松学习Javaweb》");
		 strlist.add("《10天轻松学习springboot框架开发》");
		
		 List<Users> userlist=new ArrayList<Users>();
		 //申明一个存储Users类的ArrayList集合
		 
		 userlist.add(new Users(1,"user1","user1"));
		 userlist.add(new Users(2,"user2","user2"));
		 userlist.add(new Users(1,"user1","user1"));
		 
		 
		 
		 
	}
发布了55 篇原创文章 · 获赞 1 · 访问量 2947

猜你喜欢

转载自blog.csdn.net/u013750652/article/details/104045936
今日推荐