java集合总结

时间:2024.3.19

集合 .................................................................................................................................................. 1

一、Collection .......................................................................................................................... 1

1.Collections 是什么? ...................................................................................................... 1

二、Map (键,值对) ................................................................................................................... 2

1) HashMap (散列存储) ................................................................................................... 2

2) TreeMap (能对key进行排序) ..................................................................................... 2

3) LinkedHashMap (保证添加的顺序) ............................................................................ 2

三、Iterable (迭代器接口) :遍历集合 ..................................................................................... 2

集合

一、Collection

1.Collections 是什么?

1) 一个操作集合工具(API)

2) 是一个工具类

2.Collections 的作用?

操作集合中的数据.(排序,拷贝,交换,打乱顺序,....)

1) List (ArrayList,LinkedList,Vector)

2) Set (HashSet,TreeSet,LinkedHashSet)

3) Queue (LinkedList)

public void collectionsDemo1(){

List<Integer> list=

new ArrayList<Integer>();

list.add(1);

list.add(5);

list.add(3);

list.add(7);

list.add(2);

//实现集合内容的倒置 Collections.reverse(list); String s=list.toString(); //对集合中的元素进行排序 Collections.sort(list); s=list.toString(); //打乱元素的顺序(洗牌) Collections.shuffle(list); s=list.toString(); //将几个数据添加到list集合 Collections.addAll(list, 9,4,6); s=list.toString(); Collections.sort(list); s=list.toString(); int n=Collections.

} binarySearch(list,3);//二分查找,前提是集合内容有序 //Collections.copy(destination, source) //Collections.max(collection) //Collections.min(collection) Collections.swap(list, 2, 3); Collections.synchronizedList(list); //Collections.synchronizedMap(map) //...... System.out.println(list);

二、Map (键,值对)

1) HashMap (散列存储)存储到散列表(哈希表)

HashSet 底层就是借助HashMap去存储的,

HashSet 中数据其实是存储到了HashMap

的key的位置.

2) TreeMap (能对key进行排序)

两种情况:

1)要么key实现Comparable接口

2)要么构建TreeMap时,指定排序策略(实现了Comparator的对象)

3) LinkedHashMap (保证添加的顺序)

LinkedHashMap <String,String> tm=

new LinkedHashMap <String,String>();

tm.put("D","1003");

tm.put("B","1002");

tm.put("C","1001");

System.out.println(tm);

["D","1003"]["B","1002"]["C","1001"]

三、Iterable (迭代器接口) :遍历集合

Iterator<T> iterator();

四、List 接口 (继承Collection)

1) ArrayList (实现了List接口)

2) LinkedList (实现了List,Queue接口)

3) Vector (实现了List接口)

五、Set 接口 (继承Collection)

1) HashSet (实现了Set接口) :无序,不重复

2) TreeSet (实现了SortSet接口):排序,不重复

a) Comparable (接口)

b) Comparator (接口) 用在构建TreeSet对象时,指定排序算法

3) LinkedHashSet(继承了HashSet):有序(保证添加的顺序),不重复


第二篇:java集合总结


一、数组、集合

数组、集合:都是一种容器,用一个对象管理多个对象;

数组:不能自动增长;只能存放同类型的元素

集合:能自动扩容;部分集合允许存放不同类型的元素;

二、学习这些集合类要掌握哪些东西:

1)怎样得到(选择)集合对象;

2)怎样添加元素

3)怎样删除元素

4)怎样循环遍历没一个元素

三、list、set、map

collection:父接口;

Set:接口 ---一个实现类: HashSet

List:接口---三个实现类: LinkedList,Vector,ArrayList

SortedSet:接口---实现类:TreeSet

1、List:

List:有序列表,允许存放重复的元素;

实现类:

ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始; LinkedList:链表实现,增删快,查询慢

Vector:数组实现,线程安全,重量级

2.Set:

无序集合,不允许存放重复的元素;

实现类 HashSet:equals返回true,hashCode返回相同的整数;哈希表;

子接口SortedSet:对Set排序 实现类 :TreeSet:二叉树实现的;

看API:<E> 泛型:表示一个对象;

Iterator:接口,迭代器;

java.util;

hasNext();

next();

remove();

Iterable:可迭代的,访问的 ;

java.lang;实现了可迭代的接口就可以用迭代的方式访问;

只需实现 iterator();方法即可;Iterator iterator();

三种循环的访问方式:

for(int i=0;i<list.size();i++){ Iterator it=list.iterator(); for--each 循环: System.out.println(list.get(i)); while(it.hasNext()){ for(Object obj:list){

} System.out.println(it.next()); System.out.println(obj); } }

只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种; ArrayList:自动扩容,是数组照搬过来的;

3.Map

HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;

HashSet 的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;

如果有两个Key重复,那么会覆盖之前的;

Hashtable:线程安全的

Properties:java.util.Properties; key和value都是String类型,用来读配置文件;

HashMap与Hashtable区别:

HashMap线程不安全的,允许null作为key或value;

Hashtable线程安全的,不允许null作为key或value;

TreeMap: 对key排好序的Map; key 就是TreeSet, value对应每个key;

key要实现Comparable接口或TreeMap有自己的构造器;

HashSet:remove(Object o)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;

定义一个Map; key是课程名称,value是Integer表示选课人数;

map.put(cou,map.get(cou)+new Integer(1));

四、Hashtable、Properties

1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任

何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 法。

2,Properties:继承自Hashtable,比 Hashtable 更严格 属性列表中每个键及其对应值都是一个字符串。

常用方法 String getProperty(String?key) 和 setProperty(String key,String value); 用法:我在C盘下建了一个名为 yy.dat 的文件,文件的内容为:

name=hehe

password=12345

执行以下程序,输出 hehe,可见用 Properties 可以很方便的解析配置文件 Properties p = new Properties();

p.load(new FileInputStream("C:\\yy.dat"));

System.out.println(p.getProperty("name"))

五、两个工具类 Arrays 和 Collections

1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂

2.Collections、主要提供了在 collection 上进行操作的静态方法

六、遗留的几个类

1.Hashtable, 作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap

2.Enumeration, 遗留集合使用枚举接口来遍历元素,它有两个方法,

hasMoreElements和nextElement,用法类似Iterator。

3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈 和pop()方法出栈。

33.

System.out.println((end -

start) + " milliseconds");

34. }

35. }

七、常见笔试题目汇总

1.Collection 和 Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set 和List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

2.List, Set, Map是否继承自Collection接口?

List,Set是,Map不是

3.两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

不对,有相同的hash code。

4.你所知道的集合类都有哪些?主要方法?

最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。

Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。

5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)

快速排序的伪代码。

/ /使用快速排序方法对a[ 0 :n- 1 ]排序

从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该元素为支点

把余下的元素分割为两段left 和r i g h t,使得l e f t中的元素都小于等于支点,而right 中的元素都大于等于支点

递归地使用快速排序方法对left 进行排序

递归地使用快速排序方法对right 进行排序

所得结果为l e f t + m i d d l e + r i g h t

6.HashMap 和Hashtable 的区别

都属于Map 接口的类,实现了将惟一键映射到特定的值上。

HashMap 类没有分类或者排序。它允许一个null 键和多个null 值。

Hashtable 类似于HashMap,但是不允许null 键和null 值。它也比HashMap 慢,因为它是同步的。

7.Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用= =还是equals()? 它们有何区别?

Set 里的元素是不能重复的,那么用iterator()方法来区分重复与否。

equals()是判读两个Set 是否相等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

8.介绍JAVA中的Collection FrameWork(包括如何写自己的数据结构)? Collection

├List(以特定次序来持有元素,可有重复元素)

│├LinkedList

│├ArrayList

│└Vector

│ └Stack

└Set(无法拥有重复元素,内部排序)

Map(保存key-value值,value可多值)

├Hashtable

├HashMap

└WeakHashMap

Collections是针对集合类的一个帮助类

package com.collection;

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashSet;

import java.util.Iterator;

public class TestCollection {

static String a="a";

static String g="q";

static String q="w";

static String w="g";

static String z="n";

public static void main(String args[]){

Collection<String> c=new HashSet<String>();

c.add(a);

c.add(g);

c.add(w);

c.add(z);

System.out.println(c);

Collection<String> d=new ArrayList<String>(c);

boolean b=c.contains("a");

System.out.println(b);

Iterator<String> iterator=c.iterator();

while(iterator.hasNext()){

System.out.println(iterator.next());

}

System.out.println("---------1---------");

for(Iterator<String> i=c.iterator();i.hasNext();){ System.out.println(i.next());

}

System.out.println("---------2---------");

for(String word:c){

System.out.println(word);

}

System.out.println("---------3---------"); }

}

更多相关推荐:
Java集合总结

javasetmaptablelist总结1.CollectionListSetMap区别记忆这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面…

java集合总结

一、Array,ArraysJava所有“存储及随机访问一连串对象”的做法,array是最有效率的一种。1、效率高,但容量固定且无法动态改变。array还有一个缺点是,无法判断其中实际存有多少元素,length…

java集合总结

一数组集合数组集合都是一种容器用一个对象管理多个对象数组不能自动增长只能存放同类型的元素集合能自动扩容部分集合允许存放不同类型的元素二学习这些集合类要掌握哪些东西1怎样得到选择集合对象2怎样添加元素3怎样删除元...

Java集合总结

Java基础集合总结1集合体系掌握集合Collection单列底层结构是针和元素有关List有序可重复ArrayList底层数据结构是数组查询快增删慢线程不安全效率高Vector底层数据结构是数组查询快增删慢线...

Java集合框架的知识总结

Java集合框架的知识总结说明先从整体介绍了Java集合框架包含的接口和类然后总结了集合框架中的一些基本知识和关键点并结合实例进行简单分析1综述所有集合类都位于javautil包下集合中只能保存对象保存对象的引...

java集合类总结

对象的集合如果程序的对象数量有限且寿命可知那么这个程序是相当简单的数组数组与其它容器的区别体现在三个方面效率类型识别以及可以持有primitives数组是Java提供的能随机存储和访问reference序列的诸...

集合总结 Java

712集合集合对象用于管理其他若干对象的对象数组长度不可变List有顺序的元素可以重复遍历for迭代排序ComparableComparatorCollectionssortArrayList底层用数组实现的L...

集合(Java)总结

集合(Java)总结一、集合的作用集合是可以存储一批类型不同的对象,针对集合的实现类有很多,作用都是一样的,即存储、传输数据,但存储的数据结构不一样,其速度、安全性也不一样。二、集合框架的组成:1、接口1)Co…

java集合总结

一、数组、集合数组、集合:都是一种容器,用一个对象管理多个对象;数组:不能自动增长;只能存放同类型的元素集合:能自动扩容;部分集合允许存放不同类型的元素;二、学习这些集合类要掌握哪些东西:1)怎样得到(选择)集…

Java集合框架使用总结

前言:本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看JavaAPI文档。一、概述数据结构对程序设计有着深远的影响,在面向过程…

java集合类总结-李哲

Java集合类总结在写程序的时候并不是每次只使用一个对象,更多的是对一组对象进行操作,就需要知道如何组合这些对象,还有在编码的时候我们有时并不知道到底有多少对象,它们需要进行动态的分配存放。Java的集合类只能…

java集合框架

Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Collection允许相同的元素而另一些不行…

java集合总结(31篇)