集合已修改;可能无法执行枚举操作_011 常用类及集合

5b030d59647968ff72c3bdde2d64028e.png

1. DateFormat和SimpleDateFormat类

(1) DateFormat与SimpleDateFormat的关系?

SimpleDateFormat 是DateFormat的直接子类。

(2) 为什么需要DateFormat类,它的作用是什么?

能完成字符串和时间的转换。

2. Calendar类

(1) 如何获得一个Calender类的对象?

Calendar cal = new GregorianCalendar();

父类引用指向子类对象

(2) 请例举出Calender类中五个常用的方法?

Cal.set(year,month,day); 注意1月是0;

Cal.get(int filed) 可以用cal.get(Calendar.YEAR)来获取

Cal.getTime()方法将日历对象转换为时间对象。

Cal.setTime()将某个时间对象设置到日历对象中。

Cal.add(int field,int amount) 在日历对象指定的属性上增减

3. Math类

(1) 请你列举出Math类的五个常用方法?

Math.abs(num) 取绝对值;

Math.ceil();向上取整并返回一个double类型的值

Math.floor();向下取整,再返回double类型;

Math.max Math.min 求最大值和最小值;

Math.pow(5,2);求5的二次方;

Math.random() 获得一个[0,1)区间的随机数;

Math.round();四舍五入,返回整型;

Math.sqrt() 开平方。

(2) 如何进行静态导入?

Import static java.lang.Math.*; 可以直接调用Math类的方法,可以不用写类名。如果类中有和包中同名的方法,优先调用本类中的方法。

4. File类

(1) 简述File类的作用?

File类是文件和目录路径名的抽象表现形式。一个File对象可以代表一个文件或目录。可以实现获取文件和目录属性等功能;可以实现对文件和目录的创建、删除等功能。

(2) File类操作目录与文件的常用方法有哪些?

F1.createNewFile() 创建新文件。

F1.delete() 直接从磁盘删除文件或者空目录

F1.exist()检查一个文件是否存在

F. getAbsolutePath()获取绝对路径

getPath()获取相对路径

GetName()获取文件名

ToString() 与获取相对路径功能一样

isFile()检查是否是文件

Length() 文件中内容的字节数。英文字母1个,汉字2个字节。

isDirectory()判断是否是目录

Mkdir()创建单层目录 mkdirs()创建多层目录

getParengFile()获得父级目录

List()返回字符串数组,所有文件和目录

listFile返回的是file对象并打包成数组。

5. 使用递归算法遍历目录结构和树结构

(1) 什么是递归算法?

自己调用自己

(2) 使用递归算法遍历目录结构和树结构的原理是什么?

首先传入需要打印的文件目录对象及层级(第一个层级为0);然后用for循环打印树状结构的层级关系,输出目录或文件的名称。判断File对象是否是目录。如果是目录,用listFiles来获取次级目录下的文件目录,然后遍历这个目录再次调用自己printFile(temp,level+1)。

6. 枚举

(1) 枚举的定义及使用是什么?

只能够取特定值中的一个,使用enum关键字。每一个被枚举的对象其实都是枚举的实例。

Public enum Gender{

男,女 //后面;可写可不写。默认public static final常量。

}

枚举可以包含属性和方法。

Gender sex = Gender.女;

Sex.setName(“张三”);

String str = sex.toString();将枚举转String

Gender g = Enum.valueOf(Gender.class,”男”); 将字符串转为枚举类型。

枚举在switch的使用:

Switch(g){

Case 男:

执行代码;

Break;

Case 女:

执行代码;

Break;

}

在其他类里,枚举可以作为属性/成员变量使用。

Person p = new Person(“marry”,25,Gender.女);

(2) 枚举与类是什么关系?

枚举不是类,没有构造方法。所有的枚举都隐式的继承了java.lang.enum(实质上还是类!)

7. 基本概念_Collection_Set_List接口介绍

(1) 为什么需要集合?

因为数组一旦被创建,其长度就不可更改。而集合是可变的,可以更灵活的存储数据。

Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。存放在集合中的数据,被称为元素。

(2) Collection、Set、List接口的特征是什么?

Collection接口存储一组不唯一,无序的对象。

List接口存储一组不唯一,有序(索引顺序)的对象。

Set接口存储一组唯一,无序的对象。

8. List接口ArrayList用法详解

(1) ArrayList的常用方法有哪些?

添加 add(Object obj);

List.size()集合中元素的个数;

isEmpty()判断集合是否为空;

addAll(Collection c) 添加c集合中的所有元素;

List.remove(“根据对象去删除”)或者根据索引去删除;list.remove(new Integer(123));删除整型对象的方法。

List.retainAll(list2)删除两个集合中不相同的元素;

List.contains(“hello”)判断集合中是否有某元素;

List.containsAll(list2) 判断list是否包含list2中所有的元素

List.clear() 清空集合中所有的元素;

List.get(int index)获取指定索引上的元素;

List.set(int index,对象)在指定索引上设置成某对象;

List.add(1,”java”)在指定索引位置上添加元素;

List.indexOf(“java”)查找元素在集合中的位置;

可以使用for-each增强for循环和普通for循环来遍历集合。

For(Object obj:list){

System.out.println(obj);

}

For(int i=0;i<list.size();i++){

System.out.println(list.get(i));

}

使用迭代器来遍历集合:

Iterator ite = list.iterator(); //只能正向遍历

While(ite.hasNext()){

Object obj = ite.next();

System.out.println(obj);

}

ListIterator listIte = list.listIterator();//listIterator既可以正向遍历,又可以逆向遍历。

While(listIte.hasNext()){

System.out.println(listIte.next());

}

While(listIte.hasPrevious()){

System.out.println(listIte.pervious());

}

(2) ArrayList集合的特点是什么?

有序,元素不唯一,可扩容。

9. ArrayList_JDK源码分析_1

(1) ArrayList的常用的构造方法有哪些?源码含义是什么?

无参构造方法。创建一个默认长度为0的Object类型的数组;

带参构造方法。创建一个长度为传入参数的Object类型的数组。

(2) ArrayList扩容易原理是什么?

检测空间是否够用

首先调用执行,计算容量。执行完之后的结果为10。

然后创建一个新的长度为10的数组,将元素Arrays.copy进新的数组。将新的数组返回。

第一次调用添加方法的时候,完成Object类型数组的初始化容量,10

10. ArrayList_JDK源码分析_2

(1) ArrayList中的add方法的执行过程是什么?

直接添加 add(对象)

ensureCapacityInternal(size+1);

首先检测数组元素容量是否够用;

elementData[size++] = e;

把元素添加到下标size的位置,然后size加一。

Add(int index,element)

实际是生成新的数组,将老数组的元素按要求进行拷贝。

(2) ArrayList中set和get的方法的作用及执行过程?

Set(int index,Object obj){ //把指定索引位置上的元素做修改。

Public E set(int index,E element){

E oldValue = elementData(index); //根据索引在数组中获取元素

elementData[index] = element; //将新元素设置到数组中索引为index的位置上

Return oldValue;

}

}

Get(int index)根据索引获取元素对象

Public E get(int index){

Return elementData(index); //调用了elementData()的方法

}

//elementData方法的定义

E elementData(int index){

Return (E) elementData[index]; //在Object类型的数组中根据索引取出元素对象。

}

11. LinkedList的特点_链表_JDK源码分析

(1) LinkedList集合的特点是什么?

删除和添加元素效率比较高,数据结构复杂。

(2) LinedList底层所采用的数据结构是什么?

LinkedList的底层数据结构是链表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值