Java基础复习(三)——数据结构

枚举(Enumeration)

枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。

while (days.hasMoreElements())

System.out.println(days.nextElement()); 

}

位集合(BitSet)

位集合类实现了一组可以单独设置和清除的位或标志。

该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。

BitSet();

序号

方法描述

1

void and(BitSet set)

对此目标位 set 和参数位 set 执行逻辑与操作。

2

void andNot(BitSet set)

清除此 BitSet 中所有的位,其相应的位在指定的 BitSet 中已设置。

3

int cardinality( )

返回此 BitSet 中设置为 true 的位数。

4

void clear( )

将此 BitSet 中的所有位设置为 false。

5

void clear(int index)

将索引指定处的位设置为 false。

6

void clear(int startIndex, int endIndex)

将指定的 startIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 false。

7

Object clone( )

复制此 BitSet,生成一个与之相等的新 BitSet。

8

boolean equals(Object bitSet)

将此对象与指定的对象进行比较。

9

void flip(int index)

将指定索引处的位设置为其当前值的补码。

10

void flip(int startIndex, int endIndex)

将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的每个位设置为其当前值的补码。

11

boolean get(int index)

返回指定索引处的位值。

12

BitSet get(int startIndex, int endIndex)

返回一个新的 BitSet,它由此 BitSet 中从 fromIndex(包括)到 toIndex(不包括)范围内的位组成。

13

int hashCode( )

返回此位 set 的哈希码值。

14

boolean intersects(BitSet bitSet)

如果指定的 BitSet 中有设置为 true 的位,并且在此 BitSet 中也将其设置为 true,则返回 true。

15

boolean isEmpty( )

如果此 BitSet 中没有包含任何设置为 true 的位,则返回 true。

16

int length( )

返回此 BitSet 的"逻辑大小":BitSet 中最高设置位的索引加 1。

17

int nextClearBit(int startIndex)

返回第一个设置为 false 的位的索引,这发生在指定的起始索引或之后的索引上。

18

int nextSetBit(int startIndex)

返回第一个设置为 true 的位的索引,这发生在指定的起始索引或之后的索引上。

19

void or(BitSet bitSet)

对此位 set 和位 set 参数执行逻辑或操作。

20

void set(int index)

将指定索引处的位设置为 true。

21

void set(int index, boolean v)

 将指定索引处的位设置为指定的值。

22

void set(int startIndex, int endIndex)

将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为 true。

23

void set(int startIndex, int endIndex, boolean v)

将指定的 fromIndex(包括)到指定的 toIndex(不包括)范围内的位设置为指定的值。

24

int size( )

返回此 BitSet 表示位值时实际使用空间的位数。

25

String toString( )

返回此位 set 的字符串表示形式。

26

void xor(BitSet bitSet)

对此位 set 和位 set 参数执行逻辑异或操作。

 

向量(Vector)

向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。

和数组一样,Vector对象的元素也能通过索引访问。 和 ArrayList 很相似,但Vector 是同步访问的。

使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。

Vector();Vector(int size);Vector(int size,int incr);Vector(Collection c);

序号

方法描述

1

void add(int index, Object element) 

 在此向量的指定位置插入指定的元素。

2

boolean add(Object o) 

 将指定元素添加到此向量的末尾。

3

boolean addAll(Collection c) 

将指定 Collection 中的所有元素添加到此向量的末尾,按照指定 collection 的迭代器所返回的顺序添加这些元素。

4

boolean addAll(int index, Collection c) 

在指定位置将指定 Collection 中的所有元素插入到此向量中。

5

void addElement(Object obj) 

 将指定的组件添加到此向量的末尾,将其大小增加 1。

6

int capacity() 

返回此向量的当前容量。

7

void clear() 

从此向量中移除所有元素。

8

Object clone() 

返回向量的一个副本。

9

boolean contains(Object elem) 

如果此向量包含指定的元素,则返回 true。

10

boolean containsAll(Collection c) 

如果此向量包含指定 Collection 中的所有元素,则返回 true。

11

void copyInto(Object[] anArray) 

 将此向量的组件复制到指定的数组中。

12

Object elementAt(int index) 

返回指定索引处的组件。

13

Enumeration elements() 

返回此向量的组件的枚举。

14

void ensureCapacity(int minCapacity) 

增加此向量的容量(如有必要),以确保其至少能够保存最小容量参数指定的组件数。

15

boolean equals(Object o) 

比较指定对象与此向量的相等性。

16

Object firstElement() 

返回此向量的第一个组件(位于索引 0) 处的项)。

17

Object get(int index) 

返回向量中指定位置的元素。

18

int hashCode() 

返回此向量的哈希码值。

19

int indexOf(Object elem) 

 返回此向量中第一次出现的指定元素的索引,如果此向量不包含该元素,则返回 -1。

20

int indexOf(Object elem, int index) 

 返回此向量中第一次出现的指定元素的索引,从 index 处正向搜索,如果未找到该元素,则返回 -1。

21

void insertElementAt(Object obj, int index) 

将指定对象作为此向量中的组件插入到指定的 index 处。

22

boolean isEmpty() 

测试此向量是否不包含组件。

23

Object lastElement() 

返回此向量的最后一个组件。

24

int lastIndexOf(Object elem) 

 返回此向量中最后一次出现的指定元素的索引;如果此向量不包含该元素,则返回 -1。

25

int lastIndexOf(Object elem, int index) 

返回此向量中最后一次出现的指定元素的索引,从 index 处逆向搜索,如果未找到该元素,则返回 -1。

26

Object remove(int index) 

 移除此向量中指定位置的元素。

27

boolean remove(Object o) 

移除此向量中指定元素的第一个匹配项,如果向量不包含该元素,则元素保持不变。

28

boolean removeAll(Collection c) 

从此向量中移除包含在指定 Collection 中的所有元素。

29

void removeAllElements() 

从此向量中移除全部组件,并将其大小设置为零。

30

boolean removeElement(Object obj) 

从此向量中移除变量的第一个(索引最小的)匹配项。

31

void removeElementAt(int index) 

删除指定索引处的组件。

32

protected void removeRange(int fromIndex, int toIndex)

从此 List 中移除其索引位于 fromIndex(包括)与 toIndex(不包括)之间的所有元素。

33

boolean retainAll(Collection c) 

在此向量中仅保留包含在指定 Collection 中的元素。

34

Object set(int index, Object element)

 用指定的元素替换此向量中指定位置处的元素。

35

void setElementAt(Object obj, int index) 

将此向量指定 index 处的组件设置为指定的对象。

36

void setSize(int newSize) 

 设置此向量的大小。

37

int size() 

 返回此向量中的组件数。

38

List subList(int fromIndex, int toIndex) 

返回此 List 的部分视图,元素范围为从 fromIndex(包括)到 toIndex(不包括)。

39

Object[] toArray()

 返回一个数组,包含此向量中以恰当顺序存放的所有元素。

40

Object[] toArray(Object[] a) 

返回一个数组,包含此向量中以恰当顺序存放的所有元素;返回数组的运行时类型为指定数组的类型。

41

String toString() 

返回此向量的字符串表示形式,其中包含每个元素的 String 表示形式。

42

void trimToSize() 

  对此向量的容量进行微调,使其等于向量的当前大小。

 

栈(Stack)

栈(Stack)实现了一个后进先出(LIFO)的数据结构。

你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。

当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。

Stack<Object> st = new Stack<Object>();

序号

方法描述

1

boolean empty() 

测试堆栈是否为空。

2

Object peek( )

查看堆栈顶部的对象,但不从堆栈中移除它。

3

Object pop( )

移除堆栈顶部的对象,并作为此函数的值返回该对象。

4

Object push(Object element)

把项压入堆栈顶部。

5

int search(Object element)

返回对象在堆栈中的位置,以 1 为基数。

 

字典(Dictionary)

字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。 作用和Map类相似, Dictionary类已经过时了。在实际开发中,你可以实现Map来获取键/值的存储功能。

当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用Dictionary。由于Dictionary类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。

哈希表(Hashtable)

Hashtable类提供了一种在用户定义键结构的基础上来组织数据的手段。

例如,在地址列表的哈希表中,你可以根据邮政编码作为键来存储和排序数据,而不是通过人名。哈希表键的具体含义完全取决于哈希表的使用情景和它包含的数据。它和HashMap类很相似,但是它支持同步。具体方法和MAP的方法是一致的

Java Map 接口

序号

方法描述

1

void clear( )

 从此映射中移除所有映射关系(可选操作)。

2

boolean containsKey(Object k)

如果此映射包含指定键的映射关系,则返回 true。

3

boolean containsValue(Object v)

如果此映射将一个或多个键映射到指定值,则返回 true。

4

Set entrySet( )

返回此映射中包含的映射关系的 Set 视图。

5

boolean equals(Object obj)

比较指定的对象与此映射是否相等。

6

Object get(Object k)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

7

int hashCode( )

返回此映射的哈希码值。

8

boolean isEmpty( )

如果此映射未包含键-值映射关系,则返回 true。

9

Set keySet( )

返回此映射中包含的键的 Set 视图。

10

Object put(Object k, Object v)

将指定的值与此映射中的指定键关联(可选操作)。

11

void putAll(Map m)

从指定映射中将所有映射关系复制到此映射中(可选操作)。

12

Object remove(Object k)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

13

int size( )

返回此映射中的键-值映射关系数。

14

Collection values( )

返回此映射中包含的值的 Collection 视图。

 

属性(Properties)

Properties 继承于 Hashtable.Properties 类表示了一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。

序号

方法描述

1

String getProperty(String key)

 用指定的键在此属性列表中搜索属性。

2

String getProperty(String key, String defaultProperty)

用指定的键在属性列表中搜索属性。

3

void list(PrintStream streamOut)

 将属性列表输出到指定的输出流。

4

void list(PrintWriter streamOut)

将属性列表输出到指定的输出流。

5

void load(InputStream streamIn) throws IOException

 从输入流中读取属性列表(键和元素对)。

6

Enumeration propertyNames( )

按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。

7

Object setProperty(String key, String value)

 调用 Hashtable 的方法 put。

8

void store(OutputStream streamOut, String description)

 以适合使用  load(InputStream)方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。

 

Java Map 接口

序号

方法描述

1

void clear( )

 从此映射中移除所有映射关系(可选操作)。

2

boolean containsKey(Object k)

如果此映射包含指定键的映射关系,则返回 true。

3

boolean containsValue(Object v)

如果此映射将一个或多个键映射到指定值,则返回 true。

4

Set entrySet( )

返回此映射中包含的映射关系的 Set 视图。

5

boolean equals(Object obj)

比较指定的对象与此映射是否相等。

6

Object get(Object k)

返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

7

int hashCode( )

返回此映射的哈希码值。

8

boolean isEmpty( )

如果此映射未包含键-值映射关系,则返回 true。

9

Set keySet( )

返回此映射中包含的键的 Set 视图。

10

Object put(Object k, Object v)

将指定的值与此映射中的指定键关联(可选操作)。

11

void putAll(Map m)

从指定映射中将所有映射关系复制到此映射中(可选操作)。

12

Object remove(Object k)

如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

13

int size( )

返回此映射中的键-值映射关系数。

14

Collection values( )

返回此映射中包含的值的 Collection 视图。

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1.1 单项选择题 1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的① 、数据信息在计算机中的② 以及一组相关的运算等的课程。 ① A.操作对象   B.计算方法  C.逻辑结构  D.数据映象 ② A.存储结构 B.关系 C.运算 D.算法 2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是① 的有限集合,R是D上的② 有限集合。 ① A.算法 B.数据元素 C.数据操作 D.数据对象 ② A.操作 B.映象 C.存储 D.关系 3. 在数据结构中,从逻辑上可以把数据结构分成 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 4. 算法分析的目的是① ,算法分析的两个主要方面是② 。 ① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系 C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性 ② A. 空间复杂性和时间复杂性 B. 正确性和简明性 C. 可读性和文档性 D. 数据复杂性和程序复杂性 5. 计算机算法指的是① ,它必具备输入、输出和② 等五个特性。 ① A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法 ② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性 1.2 填空题(将正确的答案填在相应的空中) 1. 数据逻辑结构包括 、 、 和 四种类型,树形结构和图形结构合称为 。 2. 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 个前驱结点;最后一个结点 后续结点,其余每个结点有且只有 个后续结点。 3. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个直接前驱结点,叶子结点没有 结点,其余每个结点的直接后续结点可以 。 4. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。 5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。 6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。 7. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0;j<n; j++) A[i][j]=0; 8. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 for (i=0;i<n;i++) for (j=0; j<i; j++) A[i][j]=0; 9. 分析下面算法(程序段),给出最大语句频度 ,该算法的时间复杂度是__ __。 s=0; for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) s=s+B[i][j][k]; sum=s; 10. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 int i=0,s=0; while (s<n) { i++; s+=i; //s=s+i } 11. 分析下面算法(程序段)给出最大语句频度 ,该算法的时间复杂度是__ __。 i=1; while (i<=n) i=i*2;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时代我西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值