Java学习笔记(2015.7.27~7.31)
2015-08-02 15:54
513 查看
Java学习笔记(2015.7.27~7.31)
Java学习笔记(2015.7.27~7.31)
小技巧
常用方法
1、List另一个子类--LinkedList
2、数组的常用方法
3、排序
1、二分法查找
2、数组转换为List
3、可变参数Type ... param (了解)
1、容器Collection
2、自动拆装箱(了解)
3、JDK增强for循环(了解)
4、泛型(掌握)
5、iterator与for在迭代中的区别
1、概念:保存多个对象的对象。
2、JDk为什么提供容器
3、API
4、容器的功能
5、Collection接口常用方法
6、容器之间的操作(了解)
7、List的特点
8、Set的特点
9、ArrayList的自动增加或减少元素的策略(了解)
10、Map(了解)
11、迭代
1、整形
2、数值的转换
3、程序的机构
4、方法重写的常见问题
Day16
Day18
Day19
周末作业
分支
循环
方法重复了
The constructor Student() is undefined
构造方法 未定义
Constructor call must be the first statement in a constructor
this()调用重载(Overload)构造方法必须在第一行
The static field Chinese.guoji should be
accessed in a static way
静态调用静态
自动增加或减小容器的长度
boolean isEmpty();
void clear();
boolean contains(Object element);要用到equals
boolean add(Object element);
boolean remove(Object element);
boolean addAdd(Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);求交集
元素可以重复
HashSet内部元素排序按照HashCode值
元素不可以洪福
例如:学号和学生姓名
保存元素时,如果key相同,值会被覆盖
key是唯一的,不允许重复
仅有三个方法:
boolean hasNext();
Object next();
void remove();
迭代代码片段:
字符包装类判断是否是数字或字母
获取数据时不需要类型强制转换
for则没有这个开始,重复几次都可以。
物理结构,ArrayList的底层是数组,LinkedList的底层是链表。
数组:元素个数固定,空间连续
链表:元素个数不固定,空间不连续
功能角度:队列(堆),栈,树(了解)
队列:普通模式,先进先出(First in First out)
栈:后进先出,***夹模式(Last in First Out)
树:有序二叉树,在一个分支中,左边的节点最小,右边的节点最大。
push:压入栈中
pop:讲栈顶部的元素弹出(最后进来的推出去)
ArrayList为什么有两个remove方法?
答:remove(object o)是Collection都有的,remove(int index)是子类新添加的,因为ArrayList是基于数组实现的,所以才有了下标。
使当前的类实现Comparable接口,增加可以与其他同类对象比较的能力
1、创建一个类,实现Comparator接口,用来比较每两个Student的大小,排序时传入自定义的Comparator对象。
例如将'1'转为整形1
字符串名.charAt(index) 将字符串中的字符取出
Collections.frequency(Collection c, Object o)
返回指定 collection 中等于指定对象的元素数。
Java学习笔记(2015.7.27~7.31)
Java
课堂
Java学习笔记(2015.7.27~7.31)
小技巧
常用方法
1、List另一个子类--LinkedList
2、数组的常用方法
3、排序
1、二分法查找
2、数组转换为List
3、可变参数Type ... param (了解)
1、容器Collection
2、自动拆装箱(了解)
3、JDK增强for循环(了解)
4、泛型(掌握)
5、iterator与for在迭代中的区别
1、概念:保存多个对象的对象。
2、JDk为什么提供容器
3、API
4、容器的功能
5、Collection接口常用方法
6、容器之间的操作(了解)
7、List的特点
8、Set的特点
9、ArrayList的自动增加或减少元素的策略(了解)
10、Map(了解)
11、迭代
1、整形
2、数值的转换
3、程序的机构
4、方法重写的常见问题
Day16
Day18
Day19
周末作业
Day16
(复习)1、整形
数据的基本单位是bit(位)。类型 | bit | Kb | 范围 |
---|---|---|---|
byte | 8位 | 1字节 | -128~127(2^8) |
short | 16位 | 2字节 | -32768~32767(2^16) |
int | 32位 | 4字节 | 很大,略 |
long | 64位 | 8字节 | 灰常大,略 |
2、数值的转换
char通过ASCII(英语发音/ski/)转成int,应用较多。3、程序的机构
顺序分支
循环
4、方法重写的常见问题
Duplicate method study() in type Student class方法重复了
The constructor Student() is undefined
构造方法 未定义
Constructor call must be the first statement in a constructor
this()调用重载(Overload)构造方法必须在第一行
The static field Chinese.guoji should be
accessed in a static way
静态调用静态
Day18
1、容器Collection
1、概念:保存多个对象的对象。
2、JDk为什么提供容器
几乎所有程序员都需要的功能3、API
应用程序接口 Application Programming Interface4、容器的功能
与数组相同自动增加或减小容器的长度
5、Collection接口常用方法
int size();boolean isEmpty();
void clear();
boolean contains(Object element);要用到equals
boolean add(Object element);
boolean remove(Object element);
6、容器之间的操作(了解)
boolean cotainsAll(Collection c);boolean addAdd(Collection c);
boolean removeAll(Collection c);
boolean retainAll(Collection c);求交集
7、List的特点
按照保存顺序存放元素可以重复
8、Set的特点
不按照保存顺序存放,按照自己的特定顺序HashSet内部元素排序按照HashCode值
元素不可以洪福
9、ArrayList的自动增加或减少元素的策略(了解)
ArrayList的内部实现使用了数组,如果元素个数小于10,数组大小为10,如果大于10,则为原长度+原长度的一半10、Map(了解)
保存键值对形式的数据例如:学号和学生姓名
保存元素时,如果key相同,值会被覆盖
key是唯一的,不允许重复
11、迭代
每个容器都实现了Iterator接口仅有三个方法:
boolean hasNext();
Object next();
void remove();
迭代代码片段:
Iterator itr = c.iterator();while(itr.hasNext()) { itr.next();}
2、自动拆装箱(了解)
AutoBoxing/AutoUnBoxing基本类型 | 封装类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
boolean digit = Character.isDigit('4'); System.out.println(digit); boolean letter = Character.isLetter('!'); System.out.println(letter);
3、JDK增强for循环(了解)
for(Object str: list) { System.out.println(str); } for(int i = 0; i<list.size();i++) { String str = (String) list.get(i); System.out.println(str); }
4、泛型(掌握)
保证类型安全获取数据时不需要类型强制转换
List<String> list = new ArrayList<String>();list.add("aaa");list.add(12);//错误,类型不符
5、iterator与for在迭代中的区别
Iterator做迭代时,迭代的对象有且只有一次;for则没有这个开始,重复几次都可以。
Day19
1、List另一个子类--LinkedList
存储性能子类 | 增 | 删 | 改 | 查 |
---|---|---|---|---|
ArrayList | 低 | 低 | 高 | 高 |
LinkedList | 高 | 高 | 低 | 低 |
数组:元素个数固定,空间连续
链表:元素个数不固定,空间不连续
功能角度:队列(堆),栈,树(了解)
队列:普通模式,先进先出(First in First out)
栈:后进先出,***夹模式(Last in First Out)
树:有序二叉树,在一个分支中,左边的节点最小,右边的节点最大。
push:压入栈中
pop:讲栈顶部的元素弹出(最后进来的推出去)
ArrayList为什么有两个remove方法?
答:remove(object o)是Collection都有的,remove(int index)是子类新添加的,因为ArrayList是基于数组实现的,所以才有了下标。
2、数组的常用方法
1、二分法查找
前提:数组必须是有序的Arrays.binarySearch(arrays,key)
2、数组转换为List
List asList = Arrays。asList(1,2,3,4,5);
3、可变参数Type ... param (了解)
可变参数是以数组的方式实现的,所以不能同时存在以数组作为形参的方法重写。3、排序
思路:使当前的类实现Comparable接口,增加可以与其他同类对象比较的能力
class Student implements Comparable<Student> { private int id; private String name; public int compareTo(Student o) { return this.id - o.id; } }找其他具备比较能力的对象来比较
1、创建一个类,实现Comparator接口,用来比较每两个Student的大小,排序时传入自定义的Comparator对象。
class StudentComparator implements Comparator<Student>{ public int compare(Student o1, Student o2) { return o1.id - o2.id; } } …… Comparator<Student> comparator = new StudentComparator(); Collections.sort(list,comparator);
周末作业
小技巧
将字符转为数字例如将'1'转为整形1
int a = Integer.valueOf('1'+"")这样才能顺利转成1
常用方法
charAt() 字符串的方法字符串名.charAt(index) 将字符串中的字符取出
Collections.frequency(Collection c, Object o)
返回指定 collection 中等于指定对象的元素数。
相关文章推荐
- java单例模式
- 编写struts.xml时的提示问题
- java 集合类结构图 List Set Map 对比
- java--获取当前时间(Calendar类)
- 用JavaDBF操作(读、写)DBF文件
- JavaWeb 文件上传
- java的反射性能测试
- JAVA学习第十二天
- java并发编程中CountDownLatch和CyclicBarrier的使用
- Tarena - Java开发环境
- JavaWeb 全站乱码过滤
- Spring MVC JSON数据交互-解析和返回JSON
- JAVA入门基础文章3-类的概念-什么是继承
- java中,数值型Double运算出错问题
- 简单的struts2案例
- Java比较String ==和equals() 解析
- JNI中 Java 中字符串 转换成C中的字符数组方法
- spring配置文件详解
- Web Service学习-CXF与Spring整合为JavaEE应用发布WebService(三)
- Java:注解(Annotation)自定义注解入门