- 浏览: 150259 次
- 性别:
- 来自: 成都
最新评论
-
zhuguopei_java:
return name.equals(p.name()) &a ...
1、集合练习 -
392214559:
引用
1、数据结构与算法
文章列表
一、BufferedWriter
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。
并非所有平台都使用新行符 ('\n') 来终止各行。
因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到底层字符或字节流。
除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() ...
一、Reader
用于读取字符流的抽象类。
子类必须实现的方法只有 read(char[], int, int) 和 close()。
但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能
直接已知子类:
BufferedReader, CharArrayReader, FilterReader, InputStreamReader, PipedReader, StringReader
public abstract class Reader implements Readable, Closeable
{
/**
*读取单个字符 ...
一、IO(Input Output)流
IO流用来处理设备之间的数据传输
Java对数据的操作是通过流的方式
Java用于操作流的对象都在IO包中
流按操作数据分为两种:字节流和字符流
流按流向分为:输入流和输出流
二、IO流常用基类
字节流的抽象基类:InputStream OutputStream
字符流的抽象基类:Reader Writer
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:InputStream 的子类FileInputStream Reader的子类FileReader
流的重要操作是读和写
读和写都会 ...
一、Date类
类 Date 表示特定的瞬间,精确到毫秒。
在 JDK 1.1 之前,类 Date 有两个其他的函数。
它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。
不过,这些函数的 API 不易于实现国际化。
从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,
使用 DateFormat 类来格式化和解析日期字符串。
Date 中的相应方法已废弃。
public class Date implements Serializable, Cloneable, Comparable<Date ...
一、Runtime类
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
二、常用方法
public class Runtime
{
priva ...
一、System类
System是final类
构造函数是私有的,不能被实例化。
类中的方法和属性都是静态的。
在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
对外部定义的属性和环境变量的访问;
加载文件和库的方法;
还有快速复制数组的一部分的实用方法。
二、常用属性和方法
public final class System {
/* First thing---register the natives */
private static native void registerNatives();
s ...
一、静态导入
导入了类中的所有静态成员,简化静态成员的书写。
如:import static java.util.Collections.*; //导入了Collections类中的所有静态成员
那么就可以直接使用其方法,而不用 Collections .方法了
But,当方法重名时,需要指定具体所属的对象或者类
当类名重名时,需要指定具体的包
一、方法的可变参数
用到函数的参数上,当要操作的同一个类型元素个数不确定的时候,可是用这个方式,这个参数可以接受任意个数的同一类型的数据。
其实就是数组参数的简写形式
但是调用函数时不用每一次都手动的建立数组对象,只要将要操作的元素作为参数传递即可。
底层隐式将这些参数封装成了数组。
使用注意:可变参数一定要定义在参数列表最后面,否则编译失败
二、示例
/**
*问题:求未知个数的整数的和
*/
public class Test
{
public static void main(String[] args)
{
int sum1 = g ...
一、高级for循环
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
//........
}
二、特点
用于对存储对象的容器进行迭代
传统for和高级for有什么区别?
高级for有一个局限性,必须要有被遍历的目标(Collection或数组)
如果遍历数组,还需要对数组元素进行操作,建议用传统for循环因为可以定义角标通过角标操作元素。
如果只为遍历获取,可以简化成高级for循环,它的出现为了简化书写。
对集合进行遍历,只能获取集合元素,但是不能对集合进行操作
迭代器除了遍历,还可以进行remove集合中元素的动 ...
一、Arrays
此类包含用来操作数组(比如排序和搜索)的各种方法。
除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。
二、常用方法
public class Arrays
{
//私有化构造函数,不能创 ...
一、Collections
该类不能创建对象
此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
它包含在 collection 上操作的多态算法,即“包装器”,包装器返回由指定 collection 支持的新 collection,以及少数其他内容。
如果为此类的方法所提供的 collection 或类对象为 null,则这些方法都将抛出 NullPointerException
二、常用方法
public class Collections
{
//构造函数私有化,不能创建对象
private Collect ...
/**
* “sdfgzxcvasdfxcvdf”获取该字符串中的字母出现的次数。
* 希望打印结果:a(1)c(2)
*/
import java.util.*;
class TreeMapDemo
{
public static void main(String[] args)
{
String str = "sdfgzxcvasdfxcfvdf";
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
tongJi( ...
一、Map映射
/**
*java.util.Map<K,V>
*K - 此映射所维护的键的类型
*V - 映射值的类型
*将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
*Map 接口提供三种collection 视图,允许以键集、 ...
一、简介
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,
“任意化”带来的缺点是要做显式的强制类型转换,
而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。
对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。
泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。
二、泛型
泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
用于解决安全问题,是一个类型安全机制。
这种参数类型可以用在类、接口和方 ...
一、Set集合
public interface Set<E>extends Collection<E>{}
一个不包含重复元素的 collection。
更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 null 元素。
Set集合的功能(方法)和Collection是一致的。
Set:元素是无序的(存入和取出的顺序不一定一致),元素不可以重复
|--HashSet:底层数据结构是哈希表,不同步
|--TreeSet:底层数据结构是二叉树,不同步
二、HashSet集 ...