数据结构是数据及其相互之间的联系(逻辑关系),通常概括为集合结构,线性结构,树形结构,图型结构。
通常采用二元组表示:B=(K,R),B为一种数据结构,它由数据元素的集合K和K上二元关系的集合R所组成。当中:
K={ki|i>=1&&i<=n,n>=0}
R={rj|j>=1&&j<=m,m>=0}
ki(rj)为集合K(R)中的第i(j)个数据元素,n(m)为K(R)中数据元素的个数,
集合结构:当n!=0,m=0时数据结构为集合结构,此时数据结构中只存在元素的集合,不存在有关系的集合。
线性结构:元素间存在一对一的关系称为线性结构。常见类型:数组,队列,链表,栈。
树形结构:元素间存在一对多的关系称为树形结构。常见类型:树(如:哈夫曼树)
图形结构:元素间存在多对多的关系称为图形结构。
这里先讲一下集合框架
常用的集合有三种:
1.Set(集合),特点为无序,不可重复,继承了Collection接口。
Set接口常用的子类:HashSet ,TreeSet
以HashSet为例
public void testSet(){ HashSet<String> set = new HashSet<String>(); //添加数据 for(int i=0; i < 10; i++){ String s = "str"+i; set.add(s); } //遍历,打印数据 Iterator<String> it = set.iterator(); while(it.hasNext()){ //取下一个数据 String str = it.next(); System.out.println(str); } //迭代循环for遍历 for(String s : set){ System.out.println(s); } set.remove("");//删除数据 set.contains("");//判断制定元素是否存在 set.clear();//清空数据 set.isEmpty();//若集合为空返回true }
2.List(列表:数组和向量,链表,堆栈,队列),特点为可重复,其对象以线性 方式存储,无特定顺序,只有一个开头和一个结尾,继承了Collection接口。
List接口常用的子类:ArrayList、LinkedList、Vector
以ArrayList为例
public void testList(){ //创建一个数组队列,泛型 ArrayList<String> list = new ArrayList<String>(); //往队列中添加10个字符串数据 for(int i=0; i<10; i++){ list.add("str"+i); } //删除一条数据并且返回被删除的数据 String s = list.remove(5); System.out.println("被删除的数据:"+s); list.add(2, "添加到第二个"); //查找,返回被查找的数据对应的位置 int pos = list.indexOf("str3"); System.out.println("查找结果:"+pos); //替换 list.set(1, "1111"); //遍历打印 for(int i=0; i<list.size(); i++){ String str = list.get(i); System.out.println(str); } //也可用 for(String ss : list){ System.out.println(ss); } }
3.Map(映射),存放两个对象,key与value,二者一一对应。
Map接口常用的子类:HashMap,HashTable,TreeMap
以HashaMap为例
public void testMap(){ HashMap<String, String> map = new HashMap<String, String>(); //存放,value可相同 map.put("111", "张三"); map.put("222", "李四"); map.put("111", "王五"); //删除key对应的数据,并且返回对应的value map.remove("111"); //根据key值查找value String name = map.get("222"); System.out.println(name); //遍历方法1,相同的value都可以打印 Set<String> keySet = map.keySet(); for(String key : keySet){ System.out.println("key="+key); System.out.println("value="+map.get(key)); } //遍历方法2,相同的value都可以打印 Set<Entry<String,String>> entrySet = map.entrySet(); for(Entry<String,String> entry : entrySet){ System.out.println("key="+entry.getKey()); System.out.println("value="+entry.getValue()); } //遍历方法3,只打印相同value的最后一个 Collection<String> values = map.values(); for(String value : values){ System.out.println("value="+value); } }
相关推荐
java数据结构及集合框架
数据结构和Java集合框架是Java编程中至关重要的概念,它们是高效编程和算法设计的基础。在Java中,数据结构指的是组织、存储和管理数据的方式,而集合框架则是一组接口和类,为处理各种数据结构提供了统一的API。 ...
《数据结构和Java集合框架》是清华大学出版社出版的一本经典教材,主要涵盖了计算机科学中的核心概念——数据结构以及Java编程语言中的集合框架。这本书通过深入浅出的方式,讲解了如何用Java实现各种常用的数据结构...
《数据结构和java集合框架》(Data Structures and the Java Collections Frameword)[美]William J.Collins 著 高清PDF格式[共2个压缩包】 第2个
《数据结构和java集合框架》(Data Structures and the Java Collections Frameword)[美]William J.Collins 著 高清PDF格式 【共4个压缩包】 第1个
数据结构和Java集合框架是Java编程中的核心概念,它们对于高效地存储和处理数据至关重要。在Java中,集合框架提供了一系列接口和类,用于管理和操作对象的集合,而数据结构则是这些操作背后的理论基础。 首先,我们...
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在java集合框架中提供的一些实现。. 本书内容丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力。...
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。 本书内容非常丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力...
《数据结构和java集合框架》(Data Structures and the Java Collections Frameword)[美]William J.Collins 著 高清PDF格式[总两部分,part1]
Java数据结构和Java集合框架
数据结构和Java集合框架是Java开发中的核心概念,它们对于高效地存储和处理数据至关重要。在Java编程中,集合框架是一组接口和类,提供了一种标准的方式来组织和操作对象的集合。本资源《Data Structures and the ...
集合框架是Java编程语言中的核心组成部分,它提供了一套高效、灵活的数据结构和算法操作,使得程序员能够方便地存储和管理对象。这篇学习笔记将深入探讨Java集合框架的基础概念、主要类库以及常见应用场景。 首先,...
### 数据结构与Java集合框架知识点概述 #### 一、数据结构基础 1. **定义**: - 数据结构是计算机科学中的一个基本概念,指在计算机中存储、组织数据的方式。 - 它不仅涉及数据如何存储,还包括数据之间如何关联...
《数据结构和Java集合框架》是一门针对软件技术(Java Web方向)专业的重要专业基础课,同时也是核心课程。这门课程旨在深入探讨非数值计算的程序设计问题,特别是关注数据、它们之间的关系(结构)以及处理数据的...
学生通过学习方法描述和应用,可以逐步理解并有效地使用数据结构,还可以了解这些数据结构的多种实现,包括在Java集合框架中提供的一些实现。 本书内容非常丰富,且在每章章尾提供编程项目,以帮助学生提高实践能力...
全书共分16章,涵盖 CC2005 课程体系中有关算法与数据结构、知识结构和体系的重要内容,包括算法与数据结构引论、向量、双端队列、表、栈和队列、排序与选择、树、二叉搜索树、平衡搜索树、集合、映射、堆与优先队列...