`
jackleechina
  • 浏览: 594107 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

java 复习笔记——集合类

    博客分类:
  • java
 
阅读更多
A)ArrayList
ArrayList:我们可以将其看作是能够自动增长容量的数组。
利用ArrayList的toArray()返回一个数组。
Arrays.asList()返回一个列表。

迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素。

B)Collections
排序:Collections.sort()
(1)自然排寻(natural ordering );
(2)实现比较器(Comparator)接口。
取最大和最小的元素:Collections.max()、Collections.min()。
在已排序的List中搜索指定的元素:Collectons.binarySearch()。
import java.util.*;
class ArrayListTest
{
	public static void printElements(Collection c)
	{
		Iterator it=c.iterator();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
	public static void main(String[] args)
	{
		//ArrayList al=new ArrayList();
		/*al.add("winsun");
		al.add("weixin");
		al.add("mybole");*/
		/*al.add(new Point(3,3));
		al.add(new Point(2,2));
		al.add(new Point(4,4));*/
		
		/*for(int i=0;i<al.size();i++)
		{
			System.out.println(al.get(i));
		}*/
		/*System.out.println(al);
		Object[] objs=al.toArray();
		for(int i=0;i<objs.length;i++)
		{
			System.out.println(objs[i]);
		}
		List l=Arrays.asList(objs);
		System.out.println(l);
		printElements(al);*/
		//l.add("zhangsan");
		//Iterator it=al.iterator();
		/*Iterator it=l.iterator();
		it.next();//先调用.next(),再调用.remove()
		it.remove();
		while(it.hasNext())
		{
			System.out.println(it.next());
		}*/
		Student s1=new Student(2,"zhangsan");
		Student s2=new Student(1,"lisi");
		Student s3=new Student(3,"wangwu");
		Student s4=new Student(2,"mybole");
		ArrayList al=new ArrayList();
		al.add(s1);
		al.add(s2);
		al.add(s3);
		al.add(s4);
		Collections.sort(al,Collections.reverseOrder());//new Student.StudentComparator());
		printElements(al);
	}
}

class Point
{
	int x,y;
	Point(int x,int y)
	{
		this.x=x;
		this.y=y;
	}
	public String toString()
	{
		return "x="+x+","+"y="+y;
	}
}

class Student implements Comparable
{
	int num;
	String name;
	static class StudentComparator implements Comparator
	{
		public int compare(Object o1,Object o2)
		{
			Student s1=(Student)o1;
			Student s2=(Student)o2;
			int result=s1.num > s2.num ? 1 : (s1.num==s2.num ? 0 : -1);
			if(result==0)
			{
				result=s1.name.compareTo(s2.name);
			}
			return result;
		}
	}
	Student(int num,String name)
	{
		this.num=num;
		this.name=name;
	}
	
	public int compareTo(Object o)
	{
		Student s=(Student)o;
		return num > s.num ? 1 : (num==s.num ? 0 : -1);
	}
	public String toString()
	{
		return num+":"+name;
	}
}


C)HashMap,HashSet,TreeMap,TreeSet

1)HashSet:实现Set接口的hash table(哈希表),依靠HashMap来实现的。
2)HashSet:我们应该为要存放到散列表的各个对象定义hashCode()和equals()。
3)HasMap用put和get方法,HashSet用add方法,取值需要用.iterator()返回Iterator来获取。
4)TreeSet和HashSet一样,数据的排列顺序和数据存入的先后顺序无关,只和插入的内容有关。不同的是,TreeSet是排序的。而HashSet则不是,通过下面两段代码可以运行比较。

HashSet代码:
import java.util.*;
class HashSetTest{
	public static void main( String[] args){
		 HashSet hs=new HashSet();
		 hs.add("wflkslk");
		 hs.add("adf");
		 hs.add("fda");
		 hs.add("safd");
		 
		 Iterator it=hs.iterator();
		 while(it.hasNext()){
		 	System.out.println(it.next());
		}
	}
}


import java.util.*;
class TreeSetTest{
	public static void main( String[] args){
		 TreeSet ts=new TreeSet();
		 ts.add("wflkslk");
		 ts.add("adf");
		 ts.add("fda");
		 ts.add("safd");
		 
		 Iterator it=ts.iterator();
		 while(it.hasNext()){
		 	System.out.println(it.next());
		}
	}
}



摘自:孙鑫老师视频。
分享到:
评论

相关推荐

    超详细的Java复习知识点2019——个人笔记.zip

    这份名为"超详细的Java复习知识点2019——个人笔记"的文档,旨在为初学者提供一个全面且深入理解Java基础知识的指南。笔记内容可能涵盖了以下几个关键领域: 1. **Java语法基础**:包括变量、数据类型、运算符、...

    java复习笔记

    这份"java复习笔记"旨在帮助学习者系统地回顾和深入理解Java的关键概念和技术,以便于提升编程技能和应对各种开发挑战。 一、基础语法 Java的基础语法包括变量、数据类型、运算符、流程控制语句等。例如,变量是...

    学习笔记——资料

    【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...

    Java JDK 6学习笔记——ppt简体版

    这份"Java JDK 6学习笔记——ppt简体版"很可能是对这一版本特性和使用方法的详细讲解,旨在帮助初学者和有经验的开发者深入理解JDK 6的核心功能和改进。 JDK(Java Development Kit)是Java编程语言的软件开发工具...

    Java基础 学习笔记 Markdownr版

    2. 集合:在13集合.md中,详细讲解了Java集合框架,包括ArrayList、LinkedList、HashSet、HashMap等基本集合类的使用,以及List、Set、Map接口的特性。此外,还可能涉及泛型的概念,泛型(14泛型.md)提高了代码的...

    Java基础复习笔记07数据结构-树的概述

    本篇复习笔记主要关注树的概述,包括树的概念、基本操作、使用场景以及一种特殊的树实现——记父节点实现。 1. **树的概念** 树是一种由N个节点构成的有限集合,这些节点之间存在父子关系。与线性结构(如数组、...

    硅谷java基础每日复习eDiary

    以下是基于描述中提到的两个文件——"Java基础每日复习笔记-JavaSE基础阶段.edf"和"Java基础每日复习笔记-JavaSE高级阶段.edf"——所包含的知识点的详细阐述: 1. **Java SE基础阶段**: - **Java简介**:了解Java...

    Java大作业安卓开发——Word-Ocean Dictionary(词海).zip

    【描述】"大学生JAVA学习笔记,复习巩固,课程作业,课程设计" 暗示这可能是某个大学课程的一部分,学生通过这个项目来实践Java编程和Android应用开发的知识。这可能涵盖了从基础概念到高级特性的全面学习,如UI设计...

    java 解惑

    6. **Java 十大基础笔记整理(PDF).zip**:这是一份整理好的Java基础知识点的笔记,涵盖了类、对象、接口、继承、异常处理、输入输出、集合框架等关键概念,适合初学者和复习者参考。 通过这些文件,我们可以系统...

    21day_learn_java.rar_DayCounter.java

    学习者可以逐渐了解并掌握Java中的各种重要概念,如变量声明与初始化、基本数据类型与操作、数组、控制流语句(如if-else、switch、for和while循环)、面向对象编程(OOP)的核心概念(类、对象、继承、多态)、以及...

    java_PeiXun.rar

    5. **笔记文档**:可能包含了讲师的讲解要点或者学员的学习笔记,有助于理解和复习。 6. **视频教程**:如果资源丰富,可能还包括了视频教学,直观展示编程过程和技巧。 总的来说,"java_PeiXun.rar"这个压缩包对于...

    scjp考试模拟机——基于jdk5.0

    1. **题库模拟**:模拟机通常包含大量的模拟试题,覆盖了SCJP考试的所有知识点,如基本语法、类与对象、异常处理、多线程、集合框架、I/O流、反射等。这些题目旨在帮助考生熟悉考试的题型和难度,提高答题速度。 2....

    Midterm-Comp232

    3. **类与对象**:封装、继承、多态——这是面向对象编程的三大特征。 4. **数组与集合**:一维和多维数组,ArrayList, LinkedList, HashMap等集合框架的使用。 5. **异常处理**:try-catch-finally语句,自定义异常...

Global site tag (gtag.js) - Google Analytics