数据结构:
了解常用的数据结构:
栈、队列、堆、数据、链表、红黑树(二叉树)、图、哈希结构
栈的特点:先进后出
队列的特点:先进先出
栈和队列的示例图:
数组数据结构和链表数据结构
数组数据结构的概念和特点:
概念:存储同一种数据类型元素的容器
特点:存在引用,可以按照索引查找
优点:查询快
缺点:增删慢
链表数据结构的概念和特点:
概念:把一些节点用链子连接起来的数据结构
优点:增删快
缺点:查询慢
链表结构和数组结构的示意图
List接口的三个实现子类的特点:
A:ArrayList类的特点:
底层是数组结构,查询快,增删慢;线程不安全,效率高
B:Vector类的特点:
底层是数组机构,查询快,增删慢;线程安全,效率低
C:LinkedList类的特点:
底层是链表结构,增删快,查询慢;线程不安全,效率低
例题:
一个字符串集合ArrayList中含有如下元素:hello, world, java,
hello, java, php, android,world。要求编写程序,获得一个没有重复元素的新集合。
思路:
1 创建两个集合对象一个老集合,一个新集合
2 给老集合中添加元素
3 遍历老集合得到老集合中的每一个数据
4 再得到老集合中的数据后用新集合进行判断,判断集合中是否包含数据,
如果不包含,则把数据添加到新集合当中,如果包含不添加
代码:
public class Test1 {
public static void main(String[] args) {
// 创建一个集合,添加上面的元素
Collection c = new ArrayList();
// 创建一个新的集合
Collection c1 = new ArrayList();
// 添加元素
c.add("hello");
c.add("world");
c.add("java");
c.add("hello");
c.add(".net");
c.add("java");
c.add("php");
c.add("ios");
c.add("java");
c.add("android");
c.add("world");
System.out.println("c: " + c);
System.out.println("c1: " + c1);
// 遍历集合
// 获取迭代器
Iterator it = c.iterator();
// 遍历
while (it.hasNext()) {
String s = (String)it.next();
if(!(c1.contains(s))){
c1.add(s);
}
//System.out.println(c1.contains(it.next()));
// if(!(c1.contains(it.next()))){
// c1.add(it.next());
}
System.out.println("c1:" + c1);
}
}<