20天jvava(11)

corejava day06 - Collection框架
\Collections类\包装类
2011/07/29
=================================
1.Collection框架
1)Collection框架结构
集合接口:Collection List Set SortedSet
Map SortedMap
2)Collection中的基本方法
Collection接口是集合的基接口,
定义了集合共有通用的功能,没有直接的实现类
a. 集合属性:int size()
boolean isEmpty()
b. 添加元素 void add(Object obj)
void addAll(Collection c)
c. 删除元素 void remove(Object o)
void removeAll(Collection c)
void clear()
d. 查询: boolean contains(Object obj)
boolean containsAll(Collection c)
e. 转换为数组:Object[] toArray()
f. 迭代器:Iterator iterator();
Collection接口具有两个子接口:List和Set
3)List接口及其实现类
List的特点:元素按照次序存放,元素可以通过位置访问
List接口增加的方法:add(int,Object)
remove(int)
get(int)
indexOf(Object)
lastIndexOf(Object)
List接口的实现类 - ArrayList Vector
LinkedList
4)Set接口及其实现类
Set接口是Collection的子接口,代表"集",
Set的特点:元素不能重复,元素没有次序,
Set接口没有增加新的方法
Set接口的实现类 - HashSet
HashSet的构造方法:
HashSet(): 初始容量16,加载因子0.75
HashSet(int):指定容量
HashSet(int,float):指定容量和加载因子
SortedSet接口 - TreeSet
SortedSet接口是Set的子接口,
是一个排序的Set
SortdSet接口扩展的方法: Object first()
Object last()
SortedSet headSet(Object toElement) //<toElement
SortedSet tailSet(Object fromElement)//>=fromElement
SortedSet subSet(Object fromElement,Object toElement)//[fromElement,toElement)
TreeSet是SortedSet接口的实现类
5)Map接口及其实现类
Map的特点:以键值对的方式存储元素,元素是无序的
键key是不重复的,值value可以重复
Map接口的方法:
属性: size(), isEmpty()
添加元素: put(key, value)
key不存在,添加新的键值对,
key存在,修改键对应的值
删除元素: remove(key), clear()
更新元素: put(key, value)
查询元素: get(key),
containsKey(key),
containsValue(value)
全部查询: Set keySet() 返回键集(key的Set集合)
Collection values() 返回值的集合
Set<Map.Entry> entrySet() 返回内部类Entry的Set集,通过Entry可以得到key和value
实现类:HashMap Hashtable
SortedMap接口及其实现类:
SortedMap是Map的子接口,包含了排序的键值对,
根据key进行排序
SortedMap扩展的方法有:
Object firstKey()//返回第一个键
Object lastKey() //返回最后一个键
//子集,<toKey,将小于toKey的键对应的元素取出
SortedMap headMap(Object toKey)
//子集,>=fromKey
SortedMap tailMap(Object fromKey)
//子集,[fromKey,toKey)
SortedMap subMap(Object fro mKey,Object toKey)
实现类:TreeMap
6)Java泛型在Collection中的应用
a.什么是泛型
具备参数的类称为泛型类,泛型类具备类型参数
b.泛型的作用
用于类型检查
避免类型转换,提高效率
c.泛型的使用
Collection<T>,List<T>,Set<T>,
Map<K,V>
2.java.util.Collections API
1)简介
Collections是操作集合的工具类,提供静态方法
2)常用方法
sort(list):对list中的对象进行自然顺序排序,list中的对象必须实现过Comparable接口
shuffle(list):将list中的元素打乱顺序
binarySearch(list, e):
在有序的list中查找e所在的索引位置
3.基本类型包装类
1)包装类存在的意义
包装类可以把基本类型包装为对象类型,
包装类是final的类,
包装类覆盖了 toString equals hashCode
有八种包装类
int Integer
long Long
byte Byte
short Short
float Float
double Double
boolean Boolean
char Character
2)Integer类常用API
3)Double类常用API
5)自动包装(auto boxing / unboxing)
java5 的新特性
Integer i = 2;// i=new Integer(2);
Object o = 3.5;
System.out.println(o instanceof Double); //true
int a = i+1;// a = i.intValue() + 1;
可以将基本类型直接保存到集合中

作业
1 复习实现全部课堂案例代码
2 比较性能:
a int i = 1; 重复 i=i+1
b Integer i = 1; 重复 i=i+1;
3 创建一个List<String>集合, 添加多个测试数据
使用Collections.sort() 实现排序.
在排序结果中使用 Collections.binarySearch()
查询一个字符串的位置序号.
4 测试集合HashSet 的全部方法.
add()
addAll();
remove()等
5 测试HashMap的全部方法
put()
get()
remove()
values() 等

6 实现完整版MyArrayList.
参考: MyArrayList
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用InputStream和OutputStream类来读写二进制文件。InputStream用于读取二进制数据,而OutputStream用于写入二进制数据。下面是一个简单的示例代码,展示了如何使用InputStream和OutputStream读写二进制文件: ```java import java.io.*; public class BinaryFileReadWrite { public static void main(String[] args) { String filePath = "example.bin"; try { // 创建二进制文件并写入数据 OutputStream outputStream = new FileOutputStream(filePath); byte[] data = {1, 2, 3, 4, 5}; outputStream.write(data); outputStream.close(); // 读取二进制文件 InputStream inputStream = new FileInputStream(filePath); byte[] buffer = new byte[1024]; int bytesRead = inputStream.read(buffer); while (bytesRead != -1) { // 处理读取到的数据 for (int i = 0; i < bytesRead; i++) { System.out.print(buffer[i] + " "); } bytesRead = inputStream.read(buffer); } inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们首先使用OutputStream来创建一个名为"example.bin"的二进制文件,并写入一些数据。然后,我们使用InputStream来读取该文件中的数据,并将其打印到控制台上。注意,我们使用了一个字节数组作为缓冲区,每次读取最多1024个字节,并且在读取完整个文件之后,需要关闭InputStream对象。 当然,这只是一个简单的示例,实际的二进制文件读写可能涉及到更复杂的数据结构和算法,需要根据具体情况进行设计和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值