个人对集合的理解:
集合是一个容器,用一个对象可处理多个对象。
java中常用的集合在系统中定义了三大接口
java.util.Set接口及其子类,Set提供的是一个无序的集合
java.util.List接口及其子类,List提供的是一个有序集合
java.util.Map接口及其子类,Map提供了一个映射关系的集合数据结构
对集合需要掌握的:
怎样得到所选中的对象
怎样增加集合中的元素
怎样删除集合中的元素
怎样循环遍历集合中的元素
三种集合:
Set:
Set是无序集合,其中不允许存放相同元素。
实现类有HashSet
Set集合的方法:
boolean add(E ,o)向集合中加入一个对象,如果集合中有这个对象,返回false
boolean addAll(Collection<?,E>,c)向集合中加入另一个集合
boolean contains(Object o)判断集合是否存在某个对象
boolean containsAll(Collection<?,E>,c)判断集合中是否含有另一个集合
Iterator<E>得到这个集合的迭代器
boolean remove(Object o)从集合中移除一个对象
int size()返回集合内元素的个数
Object[] toArray()将集合转变成一个数组对象
对Set集合进行增,删,改,查的操作
代码:
public class Mysettest {
public static void main(String []args){
Mysettest mt=new Mysettest();
//创建含有10个学生对象的集合
Set<Student> set=mt.userSet(10);
mt.print(set);
//查找学分为15的学生的信息
mt.reacher(set, 15);
//删除学分小于10的学生的信息
Set<Student> sSet=mt.Delete(set, 10);
mt.print(sSet);
}
//创建学生集合的方法
public Set<Student> userSet(int size){
java.util.Random rd=new java.util.Random();
//创建一个集合
Set<Student> set=new HashSet<Student>();
for(int i=0;i<size;i++){
Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));
//将学生对象加到set集合中
set.add(st);
}
return set;
}
//查找学生的方法
public void reacher(Set<Student> set,int scroe){
System.out.println("学分为"+scroe+"的学生=============================>");
//给set集合加迭代器
java.util.Iterator<Student> it=set.iterator();
while(it.hasNext()){
Student st=it.next();
if(st.getscore()==scroe){
st.showInfo();
}
}
}
//删除学生信息的方法
public Set<Student> Delete(Set<Student> set ,int scroe){
System.out.println("学分小于"+scroe+"的学生=============================>");
//创建一个用来存放要删除学生的信息的集合
Set<Student> s=new HashSet<Student>();
//给set集合加迭代器
java.util.Iterator<Student> it=set.iterator();
while(it.hasNext()){
Student st=it.next();
if(st.getscore()<scroe){
s.add(st);
}
}
//将set集合中的s集合移除
set.removeAll(s);
return set;
}
//打印集合中元素的方法
public void print(Set<Student> set){
//给set集合加迭代器
java.util.Iterator<Student> it=set.iterator();
while(it.hasNext()){
Student st=it.next();
st.showInfo();
}
}
}
在Set中加入两个相同的元素会被覆盖,两个元素不可以同时存在在Set集合中。
List:
List是有序集合,其中允许存放相同元素。
实现类有ArrayList,LinkedList
List集合的方法:
boolean add(E ,o)向集合中加入一个对象,如果集合中有这个对象,返回false
boolean addAll(Collection<?,E>,c)向集合中加入另一个集合
boolean contains(Object o)判断集合是否存在某个对象
boolean containsAll(Collection<?,E>,c)判断集合中是否含有另一个集合
Iterator<E>得到这个集合的迭代器
boolean remove(Object o)从集合中移除一个对象
int size()返回集合内元素的个数
Object[] toArray()将集合转变成一个数组对象
对List集合进行增,删,改,查的操作
代码:
public class Mylisttest {
public static void main(String []args){
Mylisttest ml=new Mylisttest();
//创建学生对象
List<Student> list=ml.create(10);
ml.print(list);
//查找学分为15的学生的信息
ml.reacher(list, 15);
//删除学分小于10的学生的信息
List<Student>l=ml.Delete(list, 10);
ml.print(l);
}
//创建学生集合
public List<Student> create(int size){
java.util.Random rd=new java.util.Random();
//构造学生集合
List<Student> list=new ArrayList<Student>();
for(int i=0;i<size;i++){
//创建学生对象
Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));
//将学生对象加到list集合中
list.add(st);
}
return list;
}
//查找学生信息的方法
public void reacher(List<Student> list,int score){
System.out.println("学分为"+score+"的学生======================>");
for(int i=0;i<list.size();i++){
Student st=list.get(i);
if(st.getscore()==score){
st.showInfo();
}
}
}
//删除学生信息的方法
public List<Student> Delete(List<Student> list,int score){
System.out.println("删除后的集合元素======================>");
for(int i=0;i<list.size();i++){
Student st=list.get(i);
if(st.getscore()<score){
list.remove(st);
}
}
return list;
}
//打印学生信息
public void print(List<Student> list){
for(int i=0;i<list.size();i++){
Student st=list.get(i);
st.showInfo();
}
}
}
为什么加迭代器:由于Set集合是无序的,所以不能根据索引来遍历整个数组,所以要加迭代器对集合进行遍历。
在List中加入两个相同的元素不会被覆盖,两个元素可以同时存在在List集合中。
Map:中存入的对象是一对一对的,即每个对象和它的一个名字关联在一起。
Map中存放的是两种对象,一种是key(键),一种是value(值),它们是一一对应的
Map中的key不可以有相同的值,而value可以有相同的值
Map中的方法:
put(K key,V value)向Map集合中加入一对关联的对象
void putAll(Map<? extends k,?extends v> t)将另一个Map中的键和值加入到Map中
boolean containsKey(Object key)判断Map的Key中是否存在某种指定的Key对象
boolean containsKey(Object value)判断Map的Key中是否存在某种指定的value对象
V remove(Object key)从Map中移除key对应的value
int size()得到Map中的对象数
Set<k> keySet()将Map中所有的key对象放入一个Set返回
Collection<v> values()将Map中所有的value对象放入一个Collection返回
对Map集合进行增,删,改,查的操作
代码:
public class MyMapTest {
public static void main(String []args){
MyMapTest mt=new MyMapTest();
Map<String,Student>map=mt.create(10);
mt.print(map);
//查找
mt.reacher(map, 15);
//删除
mt.Delete(map, 10);
}
//创建学生集合
public Map<String,Student> create(int size){
java.util.Random rd=new java.util.Random();
//创建map集合
Map<String,Student> map=new HashMap<String,Student>();
for(int i=0;i<size;i++){
Student st=new Student("用户:"+((char)(65+i)),rd.nextInt(20));
map.put(""+i,st);
}
return map;
}
//查找学生信息
public void reacher(Map<String,Student> map,int score){
System.out.println("学分为"+score+"的学生======================>");
//得到Map中key的集合
Set<String> set=map.keySet();
//给set加迭代器
java.util.Iterator<String> it=set.iterator();
while(it.hasNext()){
String key=it.next();
Student st=map.get(key);
if(st.getscore()==score){
st.showInfo();
}
}
}
//删除学生信息
public void Delete(Map<String,Student> map,int score){
System.out.println("删除后的集合元素======================>");
//得到Map中key的集合
Set<String> set=map.keySet();
//创建另一个集合存放要删除学生信息
Set<String> s=new HashSet<String>();
//给set加迭代器
java.util.Iterator<String> it=set.iterator();
while(it.hasNext()){
String key=it.next();
Student st=map.get(key);
if(st.getscore()<score){
s.add(key);
}
}
set.removeAll(s);
//给set加迭代器
java.util.Iterator<String> iter=set.iterator();
while(iter.hasNext()){
String key=iter.next();
Student st=map.get(key);
st.showInfo();
}
}
//打印学生信息
public void print (Map<String,Student> map){
//得到Map中key的集合
Set<String> set=map.keySet();
//给set加迭代器
java.util.Iterator<String> it=set.iterator();
while(it.hasNext()){
String key=it.next();
Student st=map.get(key);
st.showInfo();
}
}
}
分享到:
相关推荐
这个“java集合总结副本共19页.pdf.zip”压缩包很可能是对Java集合框架的详细讲解,涵盖了重要的知识点,包括ArrayList、LinkedList、HashSet、HashMap、TreeSet、TreeMap等主要集合类,以及它们的特点、性能和应用...
Java集合总结 Java集合类是Java语言中的一种数据结构,用于存储和操作大量数据。Java集合类提供了多种实现,包括List、Set、Map等,用于解决不同的数据存储和操作问题。本文将从Java集合类的基本概念、Collection...
java集合总结.md
"Java集合总结之Collection整体框架"用到的图片
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
单个集合的学习路线:使用->做实验->画图->分析源码 集合:大小可变的序列,只能存放对象 集合和数组的区别: 1.集合是大小可变的序列,数组在声明后,长度不可变 2.数组只能存放声明时指定的一种数据类型,集合...
Java集合框架是Java编程语言中不可或缺的一部分,它提供了多种数据结构和算法,使得开发者能够高效地管理和操作数据。本文将详细解析Java集合的四大体系:Set、List、Map和Queue,以及它们的主要实现类和特性。 ...
Java集合框架是Java编程中不可或缺的部分,它提供了一组数据结构和操作,使得开发者能够高效地存储和管理数据。在面试中,对于Java集合的理解和掌握是衡量一个开发者能力的重要指标。下面我们将深入探讨Java集合的...
Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了数据结构和算法的抽象,使得开发者可以方便地管理和操作对象的集合。Java集合框架主要包括两大类:Collection和Map。 Collection接口是所有单值集合...
java集合总结
本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。Java集合框架主要包括接口和实现类两个层次。在接口层面,主要有`List`、`Set`和`Queue`三大接口...
"Java集合总结" Java集合是Java语言中的一个基本概念,它是Java语言中的一种数据结构。Java集合可以存储多个元素,提供了很多有用的方法来操作这些元素。Java集合可以分为两大类:Collection和Map。 Collection是...
本文档为本人学习 java 集合框架期间的学习总结笔记,希望对新学习的朋友有所帮助和参考价值。本人java 开发时间不是太长,可能存在不完善或不对之处,欢迎指正!
### Java集合框架使用总结 #### 一、概述 在Java编程中,集合框架是一个非常重要的概念,它提供了标准的方式来存储和操作数据集合。Java集合框架的设计原则是将数据结构抽象成一组接口,再通过不同的实现类来具体...
Java集合框架是Java编程语言中一个非常核心的部分,它提供了数据结构和算法的抽象,使得开发者可以方便地存储和管理对象。在Java中,集合主要分为两大类:Collection和Map。本文将对Java集合框架中的Collection接口...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...