集合
集合,它也是一种数组,它称为:动态数组
特点:
- 声明集合的时候,不需要指定集合的大小,当空间不够时,会自动变大
- ArrayList可以存在重复数据
- 它存储的数据是有顺序的(采用的队列的结构进行存储:先进先出,后进后出)
ArrayList
创建语法:
ArrayList<E> list = new ArrayList<E>();
<E>: 这是一种泛型的写法
作用:用于指定集合中,存储的是什么类型的数据
注意:如果要在集合中,使用泛型,jdk的版本,必须要的1.5或者以是1.5以上
注意:在创建集合时,需要把此处的E,替换成具体的数据类型,并且,这个数据类型一定是引用数据类型
特点:
1、它是一种动态数组,声明时,不需要指定集合大小,空间不够时,可以自动变大
2、从集合中取数据时,要通过下标来取
3、集合中,允许出现重复元素
4、它存储数据时,采用的是一种:队列的数据结构 (先存储的数据,最先被取出来)
5、存放在ArrayList集合中的数据,是有顺序的
常用方法:
list.add("aa");---存储数据
String val = list.get(0); --通过下标取数据
int len = list.size();--得到集合中,存储数据的个数
list.remove(0);---根据下标移除元素
list.remove("aa");-----移除指定元素
list.clear();---清空集合
boolean flag = list.contains("aa");--判断集合中,是否存在指定元素
boolean flag = list.isEmpty(); --判断集合是否为空
集合的工具类: Collections
Collections.sort(list); ----该方法,可以对ArrayList集合排序(升序)
HashSet (它与ArrayList集合非常相似)
特点:
1、它是一种动态数组,声明时,不需要指定集合大小,空间不够时,可以自动变大
2、它也是通过下标遍历元素
3、集合中,不允许出现重复元素(如果元素存在,不会添加)
4、存放在HashSet集合中的数据,是无序的
ArrayList 与 HashSet集合的区别:
1、ArrayList允许有重复元素,HashSet不允许
2、ArrayList有序排序,HashSet是无序排列
HashMap
特点:
1、声明集合的时候,不需要指定集合的大小,当空间不够时,会自动变大
2、它存储数据的形式是,采用键、值对的方式进行存储
3、HashMap存储数据时,键,不允许重复(如果键重复,将会覆盖之前的数据)
4、HashMap存储数据时,是无序的
方法:
map.put(1,"aaa");--存储数据
String val = map.get(1);--取数据
int len = map.size(); --得到集合中的个数
map.remove(键);---通过键移除值
boolean flag = map.containsKey(key);------判断map中,是否包含某一个键
boolean flag = map.containsValue(value);------判断map中,是否包含某一个值
map.clear();--清空集合
Set<Integer> keys= map.keySet(); //得到map中,所有的键,返回的是一个Set集合
Colletion<String> vals= map.values();//得到map中,所有的值,返回的是一个Collection集合
集合类Properties
涉及到IO流,这里只做了解
Properties它是一个集合类,这个集合类它可以直接与流进行交互
1、通过该类,可以直接将文件中的数据,读入到集合
2、通过该类,可以直接将集合中的数据,写入到文件
Properties类,它继承于HashTable,HashTable实现了Map接口
所以,Properties它也是Map接口的实现类,它存储数据,也是以键值对方式存储
Properties类可以通过流直接与文件交互
我们使用Propereties类,主要用下面几个方法:
1、setProperty("键","值");
以键值对的方式,将数据存储到Properties集合
2、getProperty("键");
通过键取得集合中的值
3、load();
该方法用于把文件中的数据加载到集合
4、 store();
该方法,用于将集合中的数据,存放到文件
5、stringPropertyNames();
该方法,用于得到集合中所有的键