集合框架JCF

集合框架JCF

JCF(Java Collections Framework)

集合 --- 把批量数据集中合并在一起进行操作

数组是集合的一种,而且是最简单最原始的一种

Java集合框架各接口的特点

集合框架包含3个部分:接口实现类算法

集合框架的接口:

1、Collection(集合)

a、List --- 存放线性有序元素(通过索引获取元素),元素可重复

b、Set --- 非线性无序(不能通过索引获取元素),元素不重复

2、Map --- 键缺值,一个元素包含两个对象;键对象不重复

List

List集合可以存储一列数据

1、数据内容可重复

2、以元素安插的次序来放置元素,不重新排列。

List常用实现方法

List接口

ArrayList 实现类

添加数据 add(Object).

//  添加数据    add(Object)
list.add(111);//索引为1
list.add("123");//索引为2
list.add(new UserBean());//索引为3
list.add(true);//索引为4
 System.out.println(list.get(3));//得到索引为3的数据

删除元素

//删除元素
list.remove(3);//删除索引为3的数据

查看集合长度的方法size()

//查看集合长度的方法size()
        System.out.println(list.size());//得到集合的长度

遍历方式 --- 三种方式

//length,length(),size()的区别
//遍历方式1		for循环遍历
        for (int i = 0 ; i < list.size();i++){
            System.out.println(list.get(i));
        }
// 遍历方式2	集合迭代器进行遍历
        Iterator iterator = list.iterator();
	//   hasNext() 判断迭代器中是否还有元素,没有返回false,有返回ture
	//   next()    获取迭代器中的元素
        while (iterator.hasNext()){
            Object o = iterator.next();
            System.out.println(o);
        }
// 遍历方式3     for-each  遍历
        for (Object o : list){
            System.out.println(o);
        }

集合中的泛型

泛型可以规定集合中只能存放什么类型的元素,从而在使用集合元素时,开发者可以清晰的知道集合元素的类型,从而避免类型转换异常。

Liist<String> list = new ArrayList<String>();

//该集合中只能添加字符串对象

一个集合对象中定义了泛型后,如果插入的元素不匹配泛型定义的数据类型,那么无法通过编译。

list.add("abc");	//√

list.add(new UserBean());	//×

代码

/*
泛型:
可以用来规定存放数据的类型,
如果存放的数据其类型与泛型定义的类型不一致时,编译不通过
 */
List<String> strings = new ArrayList<>();
strings.add("你好");
strings.add("世界");
strings.add("tony");
String info = strings.get(0);

for (String s : strings){
    System.out.println(s);
}

List集合的排序

在List接口中,提供了sort方法,可以实现List集合元素的排序。

List接口实现类的选择

ArrayList:底层采用数组实现,遍历元素、追加元素速度快,中间插入和删除元素速度慢,线程不安全。

ArrayList使用最广泛,集合元素增加或删除操作不频繁时使用。最适合查询。

Vector:与ArrayList类似,底层也用数组实现。但Vector是线程安全的,性能要低于ArrayList。

LinkdList:采用双向链表实现,元素空间不连续。遍历元素速度慢,中间插入

Set 接口

操作一列数据,而且数据无重复时,可以选择Set接口的实现类

Set接口实现类,利用元素的hashCode和equals方法,判断集合中元素时否重复。如果希望按元素的属性值去除重复数据,需要重写hashCode和equals方法。

Set 接口实现类常用方法:

add(Object);		//向集合中添加元素

remove(Object);		//将元素从集合移除

size();			   //得到集合的长度

Set 接口实现类的选择

HashSet:按元素的Hash码排序,速度快。

TreeSet:1、按指定的排序规则对元素进行排序,速度慢。需要由Comparable比较器指定排序规则。当Comparable比较器的Compara方法,返回值为0时,表示元素重复。2、创建TreeSet对象时,在构造方法中传入Comparator比较器,重写compare方法。

## Map 接口

Map接口不是Collection的子接口。Map接口实现类中,一个元素包含两个对象:键对象(key)和值对象(value)。键对象是唯一的,不可重复。

Map接口中使用泛型,应该应该对键和值分别定义:

Map接口中,键的对象和值的对象可以是任何类的实例,并且键对象不可重复。

Map接口实现类的常用方法

put(key,value)向集合中添加元素
get(key)根据键对象找到值对象
keySet()得到键对象的集合
values()得到值对象的集合
remove(key)根据键对象移除整个元素
containsKey(key)判断键对象在集合中是否存在

Arrays

Java集合框架提供了Arrays类,用于完成对数组中数据的操作。

Arrays类包含用来操作数组(比如排序和搜索)的各种方法。

Arrays还提供了将元素转化为List集合的方法:

Collections

Java集合框架中提供了一个操作Set、List和Map等集合的工具类Collections,该工具类中提供了大量方法,用于对集合元素进行排序、查询、修改等操作。

Properties类

Properties是Map集合的实现类,是Hashtable的子类。该类用于处理属性文件。

Properties类可以将Map形式的键/值对数据存在文本文件中。能轻松的完成对属性文件数据的读取,以及将Properties对象中的数据保存在属性文件中。常用作软件的配置文件。

Properties常用方法

Properties一般用于操作属性文件(文件后缀为Properties),再后期用属性文件做项目或框架的配置。

属性文件中,数据都已键值对(键=值)形式保存。

通过Properties类加载(load)属性文件后,可以通过getProperties(k)获取值,也可通过setProperties(键,值),去给已存在的键修改值或者新增键值对。

通过store方法将内存中的Properties类数据保存到属性文件中。

load()加载属性文件中的数据
store()将Properties对象中现有的键值对保存进属性文件
getProperty()根据键对象,得到值对象。如果键对象不存在,返回null
setProperty()向Properties对象中添加元素。如果键相同,则覆盖。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值