Java SE Lesson 5
1.对于Java中的常量的命名规则:所有的字母都是大写的,如果有多个单词,那么使用下划线连接即可.比如说:public static final int AGE_OF_PERSON = 20;
2.在Java中声明final常量时通常加上static关键字的原因,final 和 static经常一块用的原因:如果不加static每个对象都会有这个值,加了static后,所有对象里只有一个常量.
public static Authorization
{
public static final int MANGER = 1;
public static final int DEPATTMENT= 1;
public static final int EMPLOYEE = 1;
}
public static Test
{
public boolean canAccess(int access)
{
if(access == Authorization.MANGER)
{
return true;
}
if(access == Authorization.DEPARTMENT
{
return false;
}
if(access == Authorization.EMPOYEE)
{
return false;
}
}
}
3.java.util.Collection
Collection子接口:List:有序的结合.又叫序列
2,IDE(Integrated Development Environment),集成开发环境
1)NetBeans.http://netbeans.org
2)JBuilder.
3)IntellijIDEA
4)eclipse(日食月食)
4.eclipse详解:
5.ArrayList类:
1)get()方法,返回的是object类型的,需要强制类型转换.
2)size()方法
3)clear()方法
4)isEmpty()方法
5)remove(index int)方法:
remove(元素)
6)indexOf()
7)add();
8)toArray();方法
6.ctrl+shift+o:自动import;
7.
import java.util.ArrayList;
public class ArrayListTest4 {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
list.add(new Integer(5));
list.add(new Integer(6));
/*
* 不能将Object[]转换为Integer[],原因是toArray方法只能够将ArrayList转换为
* object数组,并不能将每个数组元素转换成Integer类型.只有具体访问每一个数组元素时才可以
* 进行类型转换.
*/
Object[] in = list.toArray();
for(int i = 0; i < in.length; i++)
{
System.out.println(((Integer)in[i]).intValue());
}
}
}
8.Arraylist的toSting()方法:总是调用它包含的元素的toString方法
9.集合中,存放的依然是对象的引用而不是对象本身.
10.ArrayList的实现:
ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上会在底层生成一个长度为10的Object类型数组.
11.如果增加的元素个数超过了10个,那么ArrayList底层会新生成一个数组,长度是原数组的1.5倍+1,然后将新数组的内融复制到新数组中,并且后续增加的内容会放到新数组中.当新数组无法容纳增加的元素时,重复该过程.
12.remove()会返回删掉的值.
13.对于ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高.
14.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去.
15.集合当中放置的都是Object类型,因此取出来的也是Object类型,那么必须要是用强制类型转换将其转换为真正的类型(放置进去的类型).
16.LInkedList:
17:ctrl+shift+W,关闭eclipse打开的所有窗口
18:关于ArrayList和LinkedList的比较分析:
①Arraylist底层采用数组实现,LinkedList底层采用双向链表实现.
②当执行插入,删除操作比较多时,LinkedList效率比较高,
③当执行搜索操作时,ArrayList的效率比较高一点.
19.作业:
独立分析LinkedList源代码.
20.栈(stack):(Last In Fast Out)后进先出的特点
21.队列(Queue):First In First Out
栈与队列:
队列的方法:
public void put(Object e)
{
}
public Object get()
{
}
public boolean isEmpty()
{
}
栈常用的方法:
pop(),push(),peek(),isEmpty()
栈和队列可以使用ArrayList实现