java
文章平均质量分 58
dongmeima_coder
这个作者很懒,什么都没留下…
展开
-
java Map-HashMap、TreeMap练习
/*复习:只要底层数据结构是哈希表的集合,都要覆盖重写两个方法来保证哈希表中元素的唯一性。public int hashCode()public boolean equals(Object obj)(1)HashMap能够保证元素的唯一性,不重复;(原理:在对象类中覆盖hashCode()和equals()方法),对象类可以实现Comparable接口,并实现compare原创 2016-05-10 15:52:21 · 1042 阅读 · 0 评论 -
java Map练习-获取字符串中字母出现次数(TreeMap实现)
/*练习:"kbashbdjsgfwhofihbfkwejhfiubjzfhaads"获取该字符串中的字母出现次数。希望打印结果:a(3)b(4)d(2)...通过结果发现,每一个字母都有对应的次数。、说明字符和次数之间都有映射关系。注意:当发现有映射关系是,可以选择map集合。因为map集合中存放的就是映射关系。为什么使用map集合呢?当数据之间存在着映射关系时,就想到原创 2016-05-10 15:57:43 · 2437 阅读 · 0 评论 -
java Map扩展知识练习
/*map扩展知识。map集合被使用是因为映射关系。编程实现以下数据:"yureban" -> "01" "zhangsan""yureban" -> "02" "lisi""jiuyeban" -> "01" "wangwu""jiuyeban" -> "02" "zhaoliu"注意一个键对应一个值,所以根据上面的例子,应该想到这个“值”本身也要是一个集合来存储具有映射关原创 2016-05-10 15:58:49 · 1275 阅读 · 0 评论 -
java 匿名内部类
/*1,匿名内部类:即普通内部类的简化形式。2,匿名内部类的前提:该匿名内部类继承了某个外部类或实现了某个接口。3,匿名内部类的格式:new 父类或接口(){定义子类的内容}4,匿名内部类其实就是一个匿名子类对象。而且这个对象有点胖。可以理解为带内容的对象。5,匿名内部类中自定义的方法最好不要超过三个。<3个*/abstract class Fu{ abstract void m原创 2016-05-10 10:13:48 · 681 阅读 · 0 评论 -
java 异常-运行时异常
/*Exception中有一个特殊的子类异常RunTimeException运行时异常。如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。如果在函数上声明了该异常。嗲用着可以不要进行处理。编译一样通过。之所以不用在函数声明,是因为不需要让调用者处理。当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修改。自定义异常时,如该异常的原创 2016-05-10 10:16:25 · 738 阅读 · 0 评论 -
java StringBuffer
/*StringBuffer就是装数据的容器。可以进行增删改查(1)C create 存储 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。添加区别于插入。 STringBuffer insert(index,数据);可以将数据插入到指定index位置。(2)U update 删除 StringBuffer delete(start,end原创 2016-05-10 10:37:13 · 688 阅读 · 0 评论 -
java 集合框架一
/*集合框架:为什么会出现这么多容器呢?因为每一个容器对数据的存储方式都有不同。这个存储方式称之为:数据结构。集合框架如下:Collection:遍历元素使用迭代器(iterator) |--List:有索引、可重复 |--ArrayList:底层数据结构是数组 |--LinkedList:底层数据结构是链表 |--Vector: |--Set:无索引、不可重复原创 2016-05-10 10:43:03 · 622 阅读 · 0 评论 -
java 集合框架二(list)
/*Collection: |--List:集合中的元素是有序的,可重复的,有索引。 |--Set:集合中的元素是无序的,不可重复的,无索引。List中的特有方法:增 add(index,element); addAll(index,Collection);删 remove(index);改 set(index,element);查 get(index); subLi原创 2016-05-10 10:55:10 · 594 阅读 · 0 评论 -
java 集合框架三-LinkedList
/*LinkedList的特有方法:addFirst();//添加元素addLast();getFirst();//获取元素但不删除元素,如果集合中没有元素,则抛出异常。getLast();removeFirst();//获取元素并删除元素,利用remove...方法可以遍历链表中的元素。如果集合中没有元素则抛出异常。removeLast();如果集合中没有元素,会出现原创 2016-05-10 11:06:31 · 393 阅读 · 0 评论 -
java 集合框架-利用LinkedList实现堆栈数据结构
/*利用LinkedList来实现队列(先进先出)和堆栈(先进后出)堆栈:后进先出队列:先进先出*/import java.util.*;/*队列:将LinkedList进行封装,实现队列先进先出的功能特点*/class Duilie { private LinkedList link; Duilie() { link=new LinkedList();原创 2016-05-10 11:08:22 · 1750 阅读 · 1 评论 -
java 集合框架-ArrayList存储不重复的自定义对象
/*在ArrayList中存储自定义对象为了实现在ArrayList中存储不重复的对象,需要重写equals方法。remove()方法和contains()方法都会调用equals()方法。在使用HashSet时,也要在对象类中重写两个方法即,hashCode()和equals()方法。因为HashSet会在底层调用这两个函数。首先比较HashCode(对象引用或地址),如果相同,再用e原创 2016-05-10 11:17:40 · 3518 阅读 · 0 评论 -
java 区别“==”和equals()方法
/*Object是所有类的父类:它有一个equals方法,这个方法是用来比较两个对象的引用是否相同,而不是比较对象内容是否相同。"=="比较的是两个对象的引用,Object中的equals方法比较的也是两个对象的引用。所以在Object类中==和equals的作用是一样的。所以在子类中一般会重写覆盖此equals方法,使得equals方法实现比较对象内容是否相同的功能。这时==和equ原创 2016-05-10 11:19:12 · 598 阅读 · 0 评论 -
Java 集合框架-Vector
/*复习集合框架:Collection |--List:有序的,可重复,有索引 |--ArrayList:底层数据结构是基于数组的,查询速度快,增删速度较慢 |--LinkedList:底层数据结构是基于链表的,查询速度慢,增删速度较快 |--Vector:ArrayList是对Vector的版本升级,Vector是线程同步的,而ArrayList是线程不同步的,需要加锁。 |原创 2016-05-10 11:22:43 · 830 阅读 · 0 评论 -
java 集合框架-TreeSet
/*TreeSet可以对Set集合中的对象进行排序;原理,TreeSet在底层调用了Comparable接口的方法compareTo().所以,在使用TreeSet存储自定义对象时,要想实现自定义类对象的自然排序,需要类实现Comparable接口,并重写覆盖接口唯一的方法compareTo().需求:往TreeSet集合中存储自定义对象学生。想按照学生的年龄进行排序。记住:排原创 2016-05-10 11:23:45 · 729 阅读 · 0 评论 -
java 集合框架-TreeSet练习
import java.util.*;/*练习:按照字符串长度排序。字符串本身具备比较性,但是它的比较方式不是所需要的。这时就只能使用比较器注意:在方式二中: int num=new Integer(str1.length()).compareTo(new Integer(str2.length())); 此时num的值有三种可能。正数、负数、零。千万不要写下面的代原创 2016-05-10 11:27:05 · 1118 阅读 · 0 评论 -
java 泛型
import java.util.*;/*泛型:JDK1.5版本以后出现的新特性,用于解决安全问题,是一个安全机制。好处:1,将运行时出现的类型准换换错误(ClassCastException)转移到编译时期,程序员刻可以及时发现错误并解决。2,避免了强制转换的麻烦。*/class GenericDemo //泛型 { public static void main(S原创 2016-05-10 11:47:35 · 774 阅读 · 0 评论 -
java 集合框架-HashSet
/*利用HashSet来存储自定义元素HashSet集合保证元素唯一性的依据:是通过两个方法,hashCode和equals来完成。如果元素的HashCode值相同,才会判断equals是否为true。如果元素的HashCode值不同,不会调用equals。这两个方法都是HashSet调用的,并没有显式调用。注意:对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hash原创 2016-05-10 11:20:36 · 1003 阅读 · 0 评论 -
java Map集合一
/*Map集合:该集合存储键值对,一对一对往里面存,而且要保证键的唯一性。Map比较重要的三个子类: Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的(JDK1.0)元老级的。效率低。 HashMap:底层是哈希表数据结构,允许使用null键null值。该集合是线程不同步的。(JDK1.2)效率高。 TreeMap:底层数据结构是二叉树,线程原创 2016-05-10 11:55:37 · 913 阅读 · 0 评论 -
java 数据装箱及练习-对一个字符串中的数字进行排序
/*八种数据类型:byte,short,int,long,float,double,char,boolean,基本数据类型对象包装类:为了方便操作基本数据类型值,将其封装成对象,在对象中定义了属性和行为丰富该数据的操作。用于描述对该对象的类就称为基本数据类型对象封装类。byte Byteshort Shortint Integerlong Longfloat Flo原创 2016-05-10 16:12:30 · 2525 阅读 · 0 评论 -
java Collections集合工具类
/*Collections是Collection的工具类。工具类中其中两个比较常用的方法就是:1,sort(list) 、 sort(list,自定义比较器)2,max(list) 、 max(list,自定义比较器)3,binarySearch(list,key) //利用折半查找的方法找到list中key元素的索引,存在则返回索引,不存在则返回-(插入点)-1*/原创 2016-05-11 09:39:47 · 1171 阅读 · 0 评论 -
java Arrays工具类
/*Arrays是数组工具类。可以很方便的操作数组。其中一个比较重要的方法就是asList方法。把数组变成List集合有什么好处呢:可以使用集合的思想和方法来操作数组中的元素。注意:将数组变成list集合,不可以使用集合的增删方法。因为数组的长度是固定的。如果增删,则会发生UnsupportedOperationException异常。可以使用contains(),get(),in原创 2016-05-11 09:44:37 · 1084 阅读 · 0 评论 -
java 高级for循环
/*高级for循环是集合中(Collection)迭代器的简写形式。即集合中的迭代器可以使用高级for来代替。格式:for(数据类型 变量名:被便利的集合(Collection)或数组){}高级for循环只对集合进行遍历。只能获取集合元素,但是不能对集合进行操作。迭代器除了遍历,还可以进行remove集合中元素的动作。如果使用ListIterator,还可以对集合中的元素进原创 2016-05-11 09:46:42 · 5231 阅读 · 0 评论 -
java 方法可变参数
/*JDK1.5版本出现的新特性:方法的可变参数:其实就是数组参数的简写形式。不用每一次都手动建立数组对象,只要将要操作的元素作为参数传递即可。隐式将这些参数封装成数组。在使用时注意:可变参数一定要定义在参数列表的最后面。*/class ParamMethodDemo{ public static void main(String[] args) { /* i原创 2016-05-11 09:48:14 · 535 阅读 · 0 评论 -
java 静态导入、System类、Date类、Runtime类、Calendar类、Collections类中的shuffle方法、Math类
/*JDK1.5版本新特性(续):静态导入注意:当类名重名时,需要指定具体的包名; 当方法名重名时,需要指定具体的类名。*/import java.util.*;import static java.util.Arrays.*;//导入Arrays工具类中的所有静态成员。import static java.lang.System.*;//导入了System类中所有的静态成员原创 2016-05-11 10:16:32 · 1270 阅读 · 0 评论 -
java io流一
/*对于IO输入输出流有两大类:1,字节流(一般用的比较多)2,字符流(指针对文字(包括中英文等各国语言文字)),字符流与字节流的区别之处就是字符流对象中融合了编码方式,即文字以哪种方式编码,以避免出现乱码。常用的四个抽象基类:字节流:InputStream、OutputStream字符流:Reader、Writer这四个基类的子类都是以这四个基类的名字作为后缀的,所以比较容易识别原创 2016-05-11 10:22:20 · 684 阅读 · 0 评论 -
java io流二-字符流输入输出缓冲区
/*字符写入缓冲流缓冲区的出现时为了提高流的操作效率。所以在创建缓冲区之前,必须要现有流对象。Writer对应BufferedWriterReader对应BufferedReader该缓冲区中提供了一个换行符方法,newLine();*/import java.io.*;class BufferedWriterDemo { public static void mai原创 2016-05-11 10:29:49 · 855 阅读 · 0 评论 -
java 装饰设计模式
/*装饰设计模式当想要对已有的对象功能进行增强时,可以定义类,将已有的对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称装饰类。*/class Person{ public void chifan() { System.out.println("eat"); }}class SuperPerson{ private Person p; SuperPer原创 2016-05-11 10:31:11 · 263 阅读 · 0 评论 -
java BufferedReader类的子类-LineNumberReader类
/*BufferedReader类是对Reader类对象功能进行加强的,这种加强模式成为装饰模式。BufferedReader有一个子类是LineNumberReader类,该类有两个比较好用的方法:getLineNumber();//获取行号setLineNumber();//设置行号结构:Reader |--BufferedReader |--LineNumberReade原创 2016-05-11 10:33:47 · 1215 阅读 · 0 评论 -
java 解释readLine的原理及LineNumberReader的原理
/*编写代码解释readLine的原理。readLine本质上还是通过read方法来实现的。*/import java.io.*;class MyBufferedReader { private Reader r; MyBufferedReader(Reader r) { this.r=r; } public String myReadLine() throws I原创 2016-05-11 10:36:09 · 4264 阅读 · 0 评论 -
java 字节输入输出流
/*字节流:InputStreamOutputStream*/import java.io.*;class FileStream{ public static void main(String[] args) throws IOException { outputFile(); //inputFile_1(); inputFile_2(); } /*不利用数原创 2016-05-11 10:45:38 · 1017 阅读 · 0 评论 -
java 键盘输入数据
/*直接使用readLine方法来完成键盘录入的一行数据的读取。readLine是字符流BufferedReader类中的方法。而键盘录入的read方法是字节流InputStream中的方法。字节转字符。*/import java.io.*;class TransStreamDemo { public static void main(String[] args) throw原创 2016-05-11 10:48:07 · 1258 阅读 · 0 评论 -
java 复制图片练习
/*复制图片。其实复制媒体文件用到的基本上是字节流文件。复制音乐与复制图片类似。图片是媒体文件,所以要使用InputStream和OutputStream来进行复制操作。*/import java.io.*;class CopyPicTest { public static void main(String[] args) { long start=System.curren原创 2016-05-11 10:49:22 · 1574 阅读 · 0 评论 -
java 练习-接收键盘输入的数据并输出
/*使用字符转换流进行键盘输入一行并输出使用InputStreamReader和OutputStreamWriter使用BufferedReader和BufferedWriter*/import java.io.*;class KeyInput1 { public static void main(String[] args) throws IOException { key原创 2016-05-11 11:00:22 · 2008 阅读 · 0 评论 -
java File类
/*File类用于封装文件或文件夹。操作:1,创建 boolean createNewFile();//在指定位置创建新的文件,如果文件已经存在,则不创建,返回false。 //和输出流不一样,输出流对象创建文件时,如果文件已经存在,则会覆盖原来的文件。 boolean mkdir();//创建文件夹 boolean mkdirs();//创建多级目录 2,删除 b原创 2016-05-11 11:05:15 · 357 阅读 · 0 评论 -
java Properties类
/*演示:如何将流中的数据存储到集合中想要将info.txt中键值数据存到集合中进行操作。思路:1,用一个流和properties.txt文件关联。2,读取一行数据,将该行数据用“=”进行分割。3,等号左边作为键,右边作为值,存到Properties集合中。注意:对于split函数,如果分隔符为“.”或“|”或“+”等本身为转义字符时,要使用转义字符\\即,str.split原创 2016-05-11 11:14:42 · 344 阅读 · 1 评论 -
java 打印流
/*打印流:该流提供了打印方法,可以将各种数据类型的数据都原样打印。字节打印流:PrintStream构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。OutputStream字符打印流:PrintWriter构造函数可以接收的参数类型:1,file对象。File2,字符串路径。String3,字节输出流。Output原创 2016-05-11 12:09:43 · 680 阅读 · 0 评论 -
java 合并文件-分割文件
/*合并文件。SequenceInputStream表示其他输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。 构造方法:SequenceInputStream(Enumeration e) 通过记住参数来初始化新创建的 SequenceInput原创 2016-05-11 12:14:12 · 528 阅读 · 0 评论 -
java RandomAccessFile类
/*RandonAccessFile类:该类不是IO体系中的子类,而是直接继承自Object类。但是它是IO包中的成员。因为它具备读和写的功能。内部封装了一个数组,而且通过指针对数组的元素进行操作。可以通过getFilePoint获取指针位置。同时可以通过seek改变指针的位置。其实完成读写的原理就是内部封装了字节输入流和输出流。通过构造函数可以看出,该类只能操作文件。而原创 2016-05-11 15:05:10 · 489 阅读 · 0 评论 -
java 对象流、管道流、基本数据流、字节数组流
import java.io.*;class ObjectStreamDemo { public static void main(String[] args) throws IOException,ClassNotFoundException { writeObject(); readObject(); } public static void writeObject(原创 2016-05-11 15:01:06 · 646 阅读 · 0 评论 -
十进制转二进制
思想:十进制转二进制就是不断对十进制除以2取余计算:余数倒序输出即可。为了存储余数,这里用到了StringBuffer容器。步骤:1,当商不为零时,进行循环除以2取余数的操作,并将余数存储在StringBuffer中。 2,StringBuffer反转,即将余数倒序输出。class ArrayTest1{ public static void main(Strin原创 2016-05-08 09:36:36 · 1388 阅读 · 0 评论