您的位置:首页 > 编程语言 > Java开发

Java学习笔记(2015.7.27~7.31)

2015-08-02 15:54 513 查看
Java学习笔记(2015.7.27~7.31)

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(位)。
类型bitKb范围
byte8位1字节-128~127(2^8)
short16位2字节-32768~32767(2^16)
int32位4字节很大,略
long64位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 Interface

4、容器的功能

与数组相同

自动增加或减小容器的长度

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
基本类型封装类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
字符包装类判断是否是数字或字母

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
物理结构,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 中等于指定对象的元素数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: