Java集合有哪些?如何选择使用?

文章目录

    • 一、java中的集合介绍
      • 1.首先知道java中为什么要用集合这个概念
      • 2.java中的集合族的基本介绍
      • 3.java中的单列结合
          • 3.1 单列各个集合底层数据结构和基本性质
        • 4.java的双列集合
    • 二、java中的集合的使用
        • 1.如何正确的使用集合?
        • 2.集合的遍历方法:
    • 三、java中的集合的选择
        • 1.单列还是双列:
        • 2.选择单列后看元素是否唯一

一、java中的集合介绍

学习东西,首先要知道学习他有什么用,他能够带给我什么样的效果。只有知道什么时候用,怎么用,这样才会对我们有用处,不然百学浪费时间。本篇主要讲解java中的常使用的集合的简单对比,没有讲到集合的细节,更深了解集合的方法就从javaAPI中自己学习更多的。

1.首先知道java中为什么要用集合这个概念

1). java操作比较多的数据是一般会用到数组,但是对于对象,数据比较庞大的数据,数组就不能满足java的需求,这样java就定义了集合这个类。

2).方便对多个集合进行操作,就使用到集合这个类

2.java中的集合族的基本介绍

1).Collection是集合类的根接口,Java中没有提供这个接口的直接的实现类。但有继承该类的两大接口类,就是List和 set集合,set集合不能包含重复的元素,List集合是一个有序的集合,可以包含重复的元素。

2)Map集合Java.util包中的另一个接口,它和Collection接口没有关系,是相互独立的,但是都属于集合类的一部分。和 collection集合最大的区别就是,Map集合是双列的,一般是成对出现的,即(键,值)总是以键值对出现。

3.java中的单列结合

java单列结合的家族中,collection是根接口,其下有两个继承子类List和Set集合。

List又有 ArrayListvectorLinkedList 三个子类
Set有 HashsetTreeset 两个子类

3.1 单列各个集合底层数据结构和基本性质

一.List集合:(有序,元素可以重复)

1.ArrayList集合:

1).底层数据结构是数组,查找快,增删慢。

2). 线程不安全,效率高

2.Vector集合:

1) 底层数据结构是数组,查询快,增删慢

2)线程安全,效率低

3.LinkedList集合:

1) 底层数据结构是链表,查询慢,增删快

2)线程不安全,效率高

二、Set集合(元素不可重复,元素唯一)
1.Hashset集合:

1) 底层数据结构是哈希表,哈希表依赖两个方法hascode ()和equals()方法

2)两个方法的执行顺序:
首先判断hascode()值是否相同
是:继续执行equals()方法,看其返回值
是true:说明元素重复,不添加
是false:就直接添加元素
否:就直接添加到集合

2.Treeset集合:

1)底层数据结构是二叉树

4.java的双列集合

1.java中的Map集合是双列的,Map集合是Map集合家族的根接口,它有HashMap和TreeMap集合两个子类。

2.Map集合中只对键有效,而对值是无效的。

3.子类的数据结构:

Hashmap:底层数据结构是哈希表,Treemap底层数据结构是二叉树,其性质和Set的底层数据结构一样。

二、java中的集合的使用

1.如何正确的使用集合?

集合使用的一般步骤:

1.首先创建一个集合

2.创建集合的对象

3.通过集合对象给集合中添加元素

4.遍历集合元素

Demo:代码示例

记得在java程序中导入包

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {
	public static void main(String[] args) {
		//1.创建集合 2.创建元素对象
		List list =new ArrayList();
		//将元素添加到集合中
		list.add("hello");
		list.add("jkdjsa");
		list.add("java ");
		//遍历集合
		 Iterator  it=list.iterator();
 		while(it.hasNext()){
			String  s=(String ) it.next();
 			System.out.println(s);
		 }
	}
}

运行结果:

hello
jkdjsa
java

2.集合的遍历方法:

作为集合的遍历,其实方法比较多,进行简单的总结如下:

1)Iterator:迭代输出,是使用最多的输出方式。

2)ListIterator:是Iterator的子接口,专门用于输出List中的内容。

3)增强for循环:

4)for循环

代码如下:

1.迭代器: Iterator it=list.iterator();//创建迭代器对象
while(it.hasNext()){//循环遍历

}

2.for循环 for(int i=0;i }

3.增强for: for(int x : a){ }

简单介绍一下增强for:增强for:
格式:
for(数组或集合的类型 变量名: 数组或集合名){
直接用变量名
}

好处:简化了数组和集合的遍历

Demo:Map集合的遍历

public class MapDemo {
	public static void main(String[] args) {
		//创建集合
		Map map=new HashMap();
		//向集合中添加元素
		map.put("001", "张三");
		map.put("002", "李四");
		//遍历集合
		/*
		* 1.获取所有的键,
		* 2.遍历键,得到每一个键
		* 3.通过每个键获取每个值
		* 
		* */
		//将所有的键集中到一个集合
		Set set=map.keySet();
		//遍历键的集合,获取键
		for(String key: set){
			//根据键去找值
			String value=map.get(key);
			System.out.println(key+"----"+value);	
		}	
	}
}

三、java中的集合的选择

根据实际需求来选择合适的集合。

1.单列还是双列:

单列就选Collection类型的,双列选Map类型的

2.选择单列后看元素是否唯一

是:选择Set集合

看元素是否排序:

是:TreeSet
否:HashSet

否: 选择List集合

安全性高低:

高:Vector

低:ArrayList 或LinkedList ’

增删多:LinkedList
查询多:ArrayList

转自:https://blog.csdn.net/lq18894033018/article/details/79706033

你可能感兴趣的:(集合)