集合框架结构
Collectioin集合中有2个子集和,分别是Set和List。一般认为,Set与List重要区别是,Set存储的数据中没有重复的元素,而List中可以存储重复的元素。实际上,并非如此。下面举几个实例。
先看List(实现类有ArrayList,LinkedList,Stack)。
import java.util.*;
public class TestList {
public static void main(String[] args) {
String[] strs = new String[] { "IBM", "Micro", "Oracle" };
// ArrayList相当于一个数组,不同的是它所存储的数据的可以为对象
List<String> list = new ArrayList<String>();
// 向list中添加数据,调用add()
for (String str : strs) {
list.add(str);
}
// 通过调用get()函数来依次方法每个元素
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
System.out.println();
// 下面代码相当于获取list中的子串
List<String> list2 = list.subList(0, 2);
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i) + " ");
}
// 下面通过迭代话来方法list当中的元素
ListIterator<String> lit = list.listIterator();
System.out.println();
// 同样是访问list当中的元素
while (lit.hasNext()) {
System.out.print(lit.next() + " ");
}
// 注意:lit.add("Xindian");通过该种方法向list里添加元素是添加不进去的。必须通过list.add();
System.out.println();
// 下面一段代码是逆向遍历list,注意:如果没有前面一段正向遍历的代码,则将不能完成逆向遍历
while (lit.hasPrevious()) {
System.out.print(lit.previous() + " ");
}
}
}
Stack类:
import java.util.*;
public class CardsGame {
//功能:利用堆栈原理以及集合框架知识,实现发牌功能
public static void main(String[] args) {
//一个集合数组,用于代表四个玩家
List<String>[] players = new ArrayList[4];
players[0] = new ArrayList<String>();
players[1] = new ArrayList<String>();
players[2] = new ArrayList<String>();
players[3] = new ArrayList<String>();
//一个堆栈,用于存放纸牌
Stack<String> stack = new Stack<String>();
//存牌
//堆栈的大小有个默认大小(26),超过该空间需重新设置。
stack.setSize(52);
System.out.println("++++++++++++++从栈底到栈顶的纸牌顺序++++++++++++++");
for(int j = 1; j < 5; j++){
for(int i = 1; i < 14; i++){
stack.push(i+"");
//从栈底到栈顶的纸牌顺序
System.out.print(i+" ");
}
System.out.println();
}
//发牌
int turns = 0;
for(int j = 0; j < stack.size(); j++){
players[(turns++)%4].add(stack.pop());
}
//依次输出玩家的纸牌
System.out.println("++++++++++++++各个玩家的所拥有的纸牌++++++++++++++");
for(int i = 0; i < 4; i++){
System.out.println("玩家"+(i+1)+"的纸牌:");
for( int j = 0; j < 13; j++){
System.out.print(players[i].get(j)+" ");
}
System.out.println();
}
}
}
LinkedList类:它存储数据时相当于一个链表
import java.util.*;
public class TestList3 {
public static void main(String... args){
//LinkedList的数据结构相当于一个链表,通过pop()等方法可以得到每个元素,
LinkedList<String> ll = new LinkedList<String>();
String[] strs = new String[]{"a","b","c","d"};
for(String str : strs){
ll.add(str);
}
int count = ll.size();
//用pop()方法遍历每个元素
while( count > 0){
System.out.println(ll.pop());
count--;
}
}
}
分享到:
相关推荐
7. **集合框架**:Java集合框架包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类,它们用于存储和操作数据。 8. **IO流**:输入输出流(IO流)是Java处理数据输入和输出的主要方式,...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
1. **Java环境配置**:安装JDK(Java Development Kit)是开始Java编程的第一步,包括设置JAVA_HOME环境变量,配置PATH和CLASSPATH,确保Java编译器和解释器能够正常工作。 2. **语法基础**:学习Java的语法规则,...
包括List、Set、Queue和Map等接口及其实现类,提供存储和操作对象的高效工具。 8. **多线程**: Java内置对多线程的支持,通过Thread类和Runnable接口,可以创建并控制多个执行线程。 这些笔记涵盖了Java面向...
Java集合框架包括List、Set、Map等接口和ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了存储和操作对象的高效工具。 11. 多线程: Java内置了对多线程的支持,可以创建Thread对象或实现Runnable...
1. **Java语言基础**:这是学习Java的第一步,包括变量、数据类型、运算符、流程控制(如if-else,switch,for,while循环)、方法定义和调用、数组等基础知识。理解这些概念是构建复杂程序的基础。 2. **面向对象...
- **集合框架**:Java集合框架提供了多种用于存储和操作数据的接口和实现,包括List、Set、Map等。了解集合框架的原理及其使用方式有助于更好地组织和管理数据。 #### 第八章:IO流 - **IO流基础**:Java提供了...
- **JDK (Java Development Kit):** 包含了JRE以及开发Java应用程序所需的工具。 - **JRE (Java Runtime Environment):** 包含了运行Java应用程序所需的所有组件,包括JVM和标准类库。 - **JVM (Java Virtual ...
- **集合框架**:包括`List`、`Set`、`Map`等接口及其实现类(如`ArrayList`、`HashSet`、`HashMap`),这些是开发中使用频率非常高的数据结构。 - **日期时间类**:如`Date`、`Calendar`等旧API,以及新引入的`...
本笔记基于第5版第一部分(I)进行整理,旨在帮助读者深入理解和掌握Java编程的基础知识。 1. **Java环境搭建**:首先,我们需要安装Java Development Kit (JDK),设置好环境变量,包括JAVA_HOME、PATH和CLASSPATH...
- **接口与实现**:List、Set、Map接口及其具体实现类,如ArrayList实现了List接口,HashMap实现了Map接口。 5. **IO流** - **输入/输出流**:Java的IO流体系支持字符流和字节流,用于读写文件、网络通信等。 - ...
Java集合框架包括List、Set、Queue和Map接口以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 **七、输入输出流** Java的I/O流处理提供了读写文件、网络通信的能力。包括字节...
Java集合框架主要包括List、Set和Map三种接口类型。其中List代表有序的、可以重复的集合,Set是不允许重复的集合,而Map是存储键值对的映射表。各种接口都提供了多种实现类,以满足不同的需求。例如ArrayList、...
4. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、LinkedList、HashSet、HashMap等)。学习它们的使用和区别,以及迭代器、泛型等概念,能帮助你高效地管理数据。 5. **输入/输出...
4. **集合库**:Scala的集合库强大且高效,包含List、Set、Map等多种数据结构,并且它们都是惰性求值的。集合操作如map、filter、fold等都是函数式编程的常见操作,能够编写出简洁、易读的代码。 5. ** Trait**:...
##### List集合 `List`接口是Java集合框架的一部分,表示有序的元素集合。常见的实现类有`ArrayList`和`LinkedList`。 ##### Set集合 `Set`接口表示不重复元素的集合。主要实现类有`HashSet`(无序且非同步)和`...
Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、HashSet、HashMap),用于存储和管理对象。 7. **输入/输出流** Java的I/O流体系支持对文件、网络、内存等进行数据读写,包括字节流和字符流,...