Java基础(二)之集合类

来源:互联网 发布:uwp开发编程语言 编辑:程序博客网 时间:2024/04/28 07:04
集合类
1.Collection接口(List接口和Set接口包含了Collection接口中的所有方法)
方法:add(),remove(),isEmpty(),hasNext(),iterator(),size()
其中,遍历List和Set均可使用iterator迭代器的方法(或for循环),Iterator的next()方法返回的是object
2.List集合:包括List接口和List接口的所有实现类,List集合中的元素允许重复,各元素的顺序就是对象插入的顺序
List接口的方法:get(int index),set(int index,Object obj)
List的实现类:ArrayList<>(),LinkedList<>() 如:List<E> list=new ArrayList<>();其中E代表合法的java数据类型;
3.Set集合:包括Set接口和Set接口的所有实现类,Set集合中的元素不允许重复,各元素没有特定的顺序
Set的实现类:HashSet<>(),TreeSet<>()
其中,TreeSet类新增方法有:first(),last(),comparator(),headSet(E toElement),subSet(E fromElement,E toElement),tailElement(E fromElement)
4.Map集合:没有继承Collection接口,包括Map接口和Map的实现类,遍历Map仍可使用迭代器,提供的是key到value的映射,不能包含相同的key,每个key只能映射到一个value
Map接口的方法:put(K key,V value),containskey(Objext key),containsValue(Object value),get(Object key),keyset(),values()
Map的实现类:HashMap<>(),TreeMap<>()




流:一组有序的数据序列,包括输入流和输出流
1.输入流
(1)InputStream类:用于处理字节,包括ByteArrayInput,StringBufferInputStream,FileInputStream,InputStream
方法:read(),read(byte[] b),mark(int readlimit),reset(),skip(long n),markSupported(),close()
(2)Reader类:用于处理字符,包括CharArrayReader,BufferReader,InputStreamReader,StringReader
2.输出流
(1)OutputStream类:用于处理字节,包括ByteArrayOutputStream,FileOutoutStream,OutputStream
方法:write(int b),write(byte[] b),write(byte[]b,int off,int len),flush(),close()
(2)Writer类:用于处理字符,包括BufferWriter,OutputStreamWriter,StringWriter
3.File类:唯一代表磁盘本身的对象
方法:Flie(String pathname),createNewFile(),delete(),getName(),canRead(),canWrite(),exists(),length(),getAbsolutePath(),getParent(),isFile(),isDirectory(),isHidden()
4.文件输入/输出流
(1)FileInputStream和FlieOutputStream类(用byte),FileReader和FileWriter类(用string或char)
如:File file=new File("word.txt");
FileOutputStream out=new FileOutputStream(file)
byte buy[]="爱上喝东方树叶的你".getBytes();
out.write(buy);
out.close();
FileInputStream in=new FileInputStream(file);
byte byt[]=new byte[1024];
int len=in.read(byt);
int.close();
(2)带缓存的输入/输出流:对所有InputStream类进行带缓冲区的包装易达到性能的优化
<1>BufferedInputStream和BufferOutputStream类(字节)
流程:文件->OnputStream->BufferedOnputStream->目的地,其中BufferedOutputStream与OutputStream输出信息完全一样,只不过BufferedOutputStream有flush()方法将缓存区的数据强制输出完
构造方法:BufferedInputStream(InputStream in)或BufferedInputStream(InputStream in,int size),BufferedOutputStream(OutputStream out)或BufferedOutputStream(OutputStream out,int size)
<2>BufferedReader与BufferedWriter类:以行位单位进行输入/输出(字符)
流程:字符数据->BufferedWriter->OutputStreamWriter->OutputStream->文件
方法:read(),readline(),write(String s,int off,int len),flush(),newLine()
如:String content[]={"好久不见","最近好吗","常联系"};
File file=new File("word.txt");
FileWriter fw=new FileWriter(file);
BufferedWriter bufw=new BufferedWriter(fw);
for(int k=0;k<content.length;k++)
{
bufw.write(content[k]);
bufw.newLine();
}
bufw.close();
fw.close();
FileReader fr= new FileReader(file);
BufferedReader bufr=new BufferedReader(fr);
String s=null;
int i=0;
while((s=bufr.readLine())!=null)
{
i++;
System.out.println("第"+i+"行"+s);
}
bufr.close();
fr,close();
5.数据输入/输出流
(1)DataInputStream(InputStream in)
(2)DataOutputStream(OutputStream out)方法:writeBytes(String s),writeChars(String s),writeUTF(String s),其中只有writeUTF()方法向目标文件中写入字符串的长度准确都会不乱码
6.ZIP压缩输入/输出流
(1)压缩文件:ZipOutputStream(OutputStream out)
方法:putNextEntry(ZipEntry e),write(byte[]b,int off,int len),finish(),setComment(String comment)
(2)解压缩:ZipInputStream(InputStream in)
方法:read(byte[]b,int off,int len),avalible(),closeEntry(),skip(long n),getNextEntry(),createZipEntry(String name)集合类
1.Collection接口(List接口和Set接口包含了Collection接口中的所有方法)
方法:add(),remove(),isEmpty(),hasNext(),iterator(),size()

其中,遍历List和Set均可使用iterator迭代器的方法(或for循环),Iterator的next()方法返回的是object

2.List集合:包括List接口和List接口的所有实现类,List集合中的元素允许重复,各元素的顺序就是对象插入的顺序
List接口的方法:get(int index),set(int index,Object obj)
List的实现类:ArrayList<>(),LinkedList<>()   如:List<E> list=new ArrayList<>();其中E代表合法的java数据类型;
3.Set集合:包括Set接口和Set接口的所有实现类,Set集合中的元素不允许重复,各元素没有特定的顺序
Set的实现类:HashSet<>(),TreeSet<>()
其中,TreeSet类新增方法有:first(),last(),comparator(),headSet(E toElement),subSet(E fromElement,E toElement),tailElement(E fromElement)
4.Map集合:没有继承Collection接口,包括Map接口和Map的实现类,遍历Map仍可使用迭代器,提供的是key到value的映射,不能包含相同的key,每个key只能映射到一个value
Map接口的方法:put(K key,V value),containskey(Objext key),containsValue(Object value),get(Object key),keyset(),values()
Map的实现类:HashMap<>(),TreeMap<>()




:一组有序的数据序列,包括输入流和输出流
1.输入流
(1)InputStream类:用于处理字节,包括ByteArrayInput,StringBufferInputStream,FileInputStream,InputStream
方法:read(),read(byte[] b),mark(int readlimit),reset(),skip(long n),markSupported(),close()
(2)Reader类:用于处理字符,包括CharArrayReader,BufferReader,InputStreamReader,StringReader
2.输出流
(1)OutputStream类:用于处理字节,包括ByteArrayOutputStream,FileOutoutStream,OutputStream
方法:write(int b),write(byte[] b),write(byte[]b,int off,int len),flush(),close()
(2)Writer类:用于处理字符,包括BufferWriter,OutputStreamWriter,StringWriter
3.File类:唯一代表磁盘本身的对象
方法:Flie(String pathname),createNewFile(),delete(),getName(),canRead(),canWrite(),exists(),length(),getAbsolutePath(),getParent(),isFile(),isDirectory(),isHidden()
4.文件输入/输出流
(1)FileInputStream和FlieOutputStream类(用byte),FileReader和FileWriter类(用string或char)
如:File file=new File("word.txt");
    FileOutputStream out=new FileOutputStream(file)
    byte buy[]="爱上喝东方树叶的你".getBytes();
    out.write(buy);
    out.close();
    FileInputStream in=new FileInputStream(file);
    byte byt[]=new byte[1024];
    int len=in.read(byt);
    int.close();
(2)带缓存的输入/输出流:对所有InputStream类进行带缓冲区的包装易达到性能的优化
<1>BufferedInputStream和BufferOutputStream类(字节)
流程:文件->OnputStream->BufferedOnputStream->目的地,其中BufferedOutputStream与OutputStream输出信息完全一样,只不过BufferedOutputStream有flush()方法将缓存区的数据强制输出完
构造方法:BufferedInputStream(InputStream in)或BufferedInputStream(InputStream in,int size),BufferedOutputStream(OutputStream out)或BufferedOutputStream(OutputStream out,int size)
<2>BufferedReader与BufferedWriter类:以行位单位进行输入/输出(字符)
流程:字符数据->BufferedWriter->OutputStreamWriter->OutputStream->文件
方法:read(),readline(),write(String s,int off,int len),flush(),newLine()
如:String content[]={"好久不见","最近好吗","常联系"};
    File file=new File("word.txt");
    FileWriter fw=new FileWriter(file);
    BufferedWriter bufw=new BufferedWriter(fw);
    for(int k=0;k<content.length;k++)
    {
      bufw.write(content[k]);
      bufw.newLine();
    }
    bufw.close();
    fw.close();
    FileReader fr= new FileReader(file);
    BufferedReader bufr=new BufferedReader(fr);
    String s=null;
    int i=0;
    while((s=bufr.readLine())!=null)
    {
       i++;
       System.out.println("第"+i+"行"+s);
     }
     bufr.close();
     fr,close();
5.数据输入/输出流
(1)DataInputStream(InputStream in)
(2)DataOutputStream(OutputStream out)方法:writeBytes(String s),writeChars(String s),writeUTF(String s),其中只有writeUTF()方法向目标文件中写入字符串的长度准确都会不乱码
6.ZIP压缩输入/输出流
(1)压缩文件:ZipOutputStream(OutputStream out)
方法:putNextEntry(ZipEntry e),write(byte[]b,int off,int len),finish(),setComment(String comment)
(2)解压缩:ZipInputStream(InputStream in)
方法:read(byte[]b,int off,int len),avalible(),closeEntry(),skip(long n),getNextEntry(),createZipEntry(String name)
0 0