Java集合类汇总
Java集合
1.Java集合类基本概念
在编程中,长城要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变得,如果我们需要保存一个可以动态增长的数据,Java集合类便是我们很好的选择了。
集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurrent包下提供了一些多线程支持的集合类。
在学习Java中的集合类的API、编程原理的时候,我们一定要明白,”集合”是一个很古老的数学概念,它远远早于Java的出现。从数学概念的角度来理解集合能帮助我们更好的理解编程中什么时候该使用什么类型的集合类。
2.集合的分类
Java容器类类库的用途是”保存对象”,并将其划分为两个不同的概念(1)Collection (2)Map:
1) Collection
一组"对立"的元素,通常这些元素都服从某种规则
1.1) List必须保持元素特定的顺序
1.2) Set不能有重复元素
1.3) Queue保持一个队列(先进先出)的顺序
2) Map
一组成对的"键值对"对象
它们的类图分别是:
(1)Collection
(2)Map
3.几种重要的接口和类简介
1、List(有序、可重复)
List里存放的对象是有序的,同时也是可以重复的,List关注的是索引,拥有一系列和索引相关的方法,查询速度快。因为往list集合里插入或删除数据时,会伴随着后面数据的移动,所有插入删除数据速度慢。
2、Set(无序、不能重复)
Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中。
3、Map(键值对、键唯一、值不唯一)
Map集合中存储的是键值对,键不能重复,值可以重复。根据键得到值,对map集合遍历时先得到键的set集合,对set集合进行遍历,得到相应的值。
4.常见集合的应用
4.1ArrayList
ArrayList的常用操作
package 集合;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created with IntelliJ IDEA.
*
* @Author crazyang
* @Desciption:
* @Date 2018-6-7 14:08
*/
public class ListTest {
private static final Integer count = 10000000;
public static void main(String[] args) {
testArrayList();
}
private static void testArrayList(){
List books = new ArrayList<>();
//向list集合中新增数据
books.add(new String("book1"));
books.add(new String("book2"));
books.add(new String("book3"));
//通过for循环展示list
for(int i = 0;i<books.size();i++){
System.out.println(books.get(i));
}
//通过增强循环展示list
for(Object book:books){
System.out.println(book);
}
//通过迭代器循环展示list
Iterator book = books.iterator();
while (book.hasNext()){
System.out.println(book.next());
}
/**
* 插入元素
*/
books.add(1,new String("在第二个位置插入"));
//通过for循环展示list
for(int i = 0;i<books.size();i++){
System.out.println(books.get(i));
}
/**
* 删除元素
*/
books.remove(2);
/**
* 替换元素
*/
books.set(2, new String("替换的元素"));
//通过for循环展示list
for(int i = 0;i<books.size();i++){
System.out.println(books.get(i));
}
}
}
4.2HashMap
最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
package 集合;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
*
* @Author crazyang
* @Desciption:
* @Date 2018-6-7 14:38
*/
public class MapTest {
public static void main(String[] args) {
testMap();
}
public static void testMap(){
Map<String,String> map = new HashMap<String,String>();
//插入元素 map.put(String key,String value)
map.put("book1","大数据之路");
map.put("book2","微信小程序开发");
map.put("book3","Java并发编程的艺术");
//获取元素 map.get(Object key);
map.get("book1");
//遍历map
Iterator it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry e =(Map.Entry) it.next();
System.out.println("键"+e.getKey () + "的值为:" + e.getValue());
}
//移除元素 map.remove(Object key);
map.remove("book1");
//清空map
map.clear();
}
}
5.总结
本文主要是粗略介绍了Java集合类以及其子类,简要做了常用两个集合ArrayList和HashMap的实例,通过实例介绍了集合中常用操作和方法,日后会抽空单独对每个子类集合进行学习总结。