`
crab1
  • 浏览: 4747 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java基础 笔记整理一:集合Set,List以及集合Map 第一部分

阅读更多

集合框架结构

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--;
		}
	}
}

 

分享到:
评论

相关推荐

    Java学习笔记(整理)

    7. **集合框架**:Java集合框架包括List、Set和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类,它们用于存储和操作数据。 8. **IO流**:输入输出流(IO流)是Java处理数据输入和输出的主要方式,...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...

    java基础笔记.zip

    1. **Java环境配置**:安装JDK(Java Development Kit)是开始Java编程的第一步,包括设置JAVA_HOME环境变量,配置PATH和CLASSPATH,确保Java编译器和解释器能够正常工作。 2. **语法基础**:学习Java的语法规则,...

    java面向对象和第一章整理笔记

    包括List、Set、Queue和Map等接口及其实现类,提供存储和操作对象的高效工具。 8. **多线程**: Java内置对多线程的支持,通过Thread类和Runnable接口,可以创建并控制多个执行线程。 这些笔记涵盖了Java面向...

    java学习者笔记整理

    Java集合框架包括List、Set、Map等接口和ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了存储和操作对象的高效工具。 11. 多线程: Java内置了对多线程的支持,可以创建Thread对象或实现Runnable...

    个人整理的javaSE部分的学习笔记,以及一些资源 Java学习资料

    1. **Java语言基础**:这是学习Java的第一步,包括变量、数据类型、运算符、流程控制(如if-else,switch,for,while循环)、方法定义和调用、数组等基础知识。理解这些概念是构建复杂程序的基础。 2. **面向对象...

    毕向东Java SE视频教程整理笔记

    - **集合框架**:Java集合框架提供了多种用于存储和操作数据的接口和实现,包括List、Set、Map等。了解集合框架的原理及其使用方式有助于更好地组织和管理数据。 #### 第八章:IO流 - **IO流基础**:Java提供了...

    java面试笔记整理,包含java,redis,kafka等

    - **JDK (Java Development Kit):** 包含了JRE以及开发Java应用程序所需的工具。 - **JRE (Java Runtime Environment):** 包含了运行Java应用程序所需的所有组件,包括JVM和标准类库。 - **JVM (Java Virtual ...

    java笔记java笔记java笔记

    - **集合框架**:包括`List`、`Set`、`Map`等接口及其实现类(如`ArrayList`、`HashSet`、`HashMap`),这些是开发中使用频率非常高的数据结构。 - **日期时间类**:如`Date`、`Calendar`等旧API,以及新引入的`...

    core java I (java核心编程)学习笔记

    本笔记基于第5版第一部分(I)进行整理,旨在帮助读者深入理解和掌握Java编程的基础知识。 1. **Java环境搭建**:首先,我们需要安装Java Development Kit (JDK),设置好环境变量,包括JAVA_HOME、PATH和CLASSPATH...

    java学习比记-北大青鸟时做的笔记,每堂课都有

    - **接口与实现**:List、Set、Map接口及其具体实现类,如ArrayList实现了List接口,HashMap实现了Map接口。 5. **IO流** - **输入/输出流**:Java的IO流体系支持字符流和字节流,用于读写文件、网络通信等。 - ...

    Java基础知识学习--自己整理.zip

    Java集合框架包括List、Set、Queue和Map接口以及它们的实现类,如ArrayList、LinkedList、HashSet、HashMap等,用于存储和操作对象。 **七、输入输出流** Java的I/O流处理提供了读写文件、网络通信的能力。包括字节...

    java核心笔记.pdf

    Java集合框架主要包括List、Set和Map三种接口类型。其中List代表有序的、可以重复的集合,Set是不允许重复的集合,而Map是存储键值对的映射表。各种接口都提供了多种实现类,以满足不同的需求。例如ArrayList、...

    JAVA核心知识点整理.zip

    4. **集合框架**:Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、LinkedList、HashSet、HashMap等)。学习它们的使用和区别,以及迭代器、泛型等概念,能帮助你高效地管理数据。 5. **输入/输出...

    scala学习笔记整理

    4. **集合库**:Scala的集合库强大且高效,包含List、Set、Map等多种数据结构,并且它们都是惰性求值的。集合操作如map、filter、fold等都是函数式编程的常见操作,能够编写出简洁、易读的代码。 5. ** Trait**:...

    技术笔记(第一部分整理)

    ##### List集合 `List`接口是Java集合框架的一部分,表示有序的元素集合。常见的实现类有`ArrayList`和`LinkedList`。 ##### Set集合 `Set`接口表示不重复元素的集合。主要实现类有`HashSet`(无序且非同步)和`...

    java初学笔记

    Java集合框架包括接口(如List、Set、Map)和实现类(如ArrayList、HashSet、HashMap),用于存储和管理对象。 7. **输入/输出流** Java的I/O流体系支持对文件、网络、内存等进行数据读写,包括字节流和字符流,...

Global site tag (gtag.js) - Google Analytics