一、Java数据结构:
Java中的数据结构主要包含以下几种接口和类:枚举、位集合、向量、栈、字典、哈希表、属性。
枚举接口定义一种从数据结构中取回连续元素的方式。
位集合实现了一组可以单独设置和清除的位或标志。
向量类于传统数组相似,但向量的大小可以依据需要动态的变化。
栈实现后进先出的数据结构。
字典类是一个抽象类,它定义键映射到值的数据结构。字典定义的抽象方法:
序号 | 方法描述 |
1 | Enumeration elements( ) |
2 | Object get(Object key) |
3 | boolean isEmpty( ) |
4 | Enumeration keys( ) |
5 | Object put(Object key, Object value) |
6 | Object remove(Object key) |
7 | int size( ) |
哈希表类提供一种在用户定义键结构的基础上来组织数据的手段。哈希表定义的方法:
序号 | 方法描述 |
1 | void clear( ) |
2 | Object clone( ) |
3 | boolean contains(Object value) |
4 | boolean containsKey(Object key) |
5 | boolean containsValue(Object value) |
6 | Enumeration elements( ) |
7 | Object get(Object key) |
8 | boolean isEmpty( ) |
9 | Enumeration keys( ) |
10 | Object put(Object key, Object value) |
11 | void rehash( ) |
12 | Object remove(Object key) |
13 | int size( ) |
14 | String toString( ) |
属性类表示一个持久的属性集。
二、Java集合框架:
Java集合框架主要包括两种类型的容器:1、集合(Collection),存储一个元素集合;2、图(map),存储键/值对映射。集合(Collection)接口有3中类型:list、set和queue。
集合框架定义的接口:
序号 | 接口描述 |
1 | Collection 接口 Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。 Collection 接口存储一组不唯一,无序的对象。 |
2 | List 接口 List接口是一个有序的 Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素。 List 接口存储一组不唯一,有序(插入顺序)的对象。 |
3 | Set Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。 Set 接口存储一组唯一,无序的对象。 |
4 | SortedSet |
5 | Map Map 接口存储一组键值对象,提供key(键)到value(值)的映射。 |
6 | Map.Entry |
7 | SortedMap |
8 | Enumeration |
三、Java ArrayList:
ArrayList类是可以动态修改的数组,没有固定大小的限制,可以添加、删除元素。
1、添加元素:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites);
}
}
2、访问元素:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.get(1)); // 访问第二个元素
}
}
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google")
sites.add("Taobao");
sites.add("Weibo");
sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}
3、删除元素:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google");
sites.add("Taobao");
sites.add("Weibo");
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}
4、计算大小:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.size());
}
}
5、迭代数组列表:
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList
sites.add("Google");
sites.add("Taobao");
sites.add("Weibo");
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i));
}
}
}