【纯出自个人笔记,如有错误,望改正,谢谢哈!学习~】
一、Java集合
1、集合类:容器类 装对象的(不能存放基本数据类型,但是里面看到的其实是包装类型)
java.util包
ArrayList底层是一个对象数组
--------------------------------------------------------------------------------------------
List中是可以存放重复元素的。Set是不能有重复元素.
Ⅰ:ArrayList:
a. 添加 :
add();里面可以存放字符串或者基本包装类型
ArrayList也可以存放布尔类型和对象
ArrayList list=new ArrayList();
list.add(1,"aa");这是指将aa字符串存放在arraylist集合索引的1位置(添加到指定位置);
list.size();是获取元素的个数,和数组的length,字符串的length()差不多。
list.add(list1);add里面还是可以放集合的
b.修改 :
list.set(0,200);这是修改指定位置的元素,这里是指修改了arraylist集合0索引的值该为200;集合的索引和数组的下标差不多。
c.获得 :
list.get(0);获得,这是获得list集合里的0索引处的值。它返回的类型是Object(Object obj=list.get(0);) 然后可以直接输出这s.o.p(obj);打印出来的就是list集合的元素
d.遍历集合:
用for循环也可以,但是集合List集合一般都用迭代器遍历集合(Iterator,下面介绍)
e.清空集合元素:
list.clear();清空掉集合中所有的元素,如果清空,输出就一对中括号“[]”表示集合里面没有元素了。o(∩_∩)o
f.移除/删除 集合中的元素:
remove();这是删除集合中的某个元素。比如list.remove(1);这就是删除掉集合中索引为1的元素(第二个),list.remove("aa");这是删除掉集合中的元素,就是如果集合中有aa的字符串,就删掉。 -----list.remove(new Integer(12));注意这种:要删除集合中的数值,就必须要这样(要指定包装类)否则删除的就是索引为12的元素,如果元素个数没有13个,那么就会出现 下标越界异常。
---------------------------------------------------------------------------------------
Ⅱ:LinkedList:ArrayList便于进行修改、获得值的操作 LinkedList便于进行增加和删除操作
a.添加元素:
LinkedList添加元素也是add();基本用法和ArrayList差不多。但是LinkedList多了2个功能:addFirst()和addLast();这2个,比如list.addFirst("asd");这是在集合的第一个位置放置asd的字符串;list.addLast("aa");这是在集合的最后一个位置放置aa字符串;
b.遍历:
和arraylist也是一样的。既可以用For循环遍历,也可以用迭代器遍历,推荐迭代器。 需要注意的是:在迭代器循环体内是不可以直接对集合进行添加删除操作的。
---------------------------------------------------------------------------------------------
Ⅲ:Stack类表示后进先出(LIFO)的对象堆栈(继承自Vector)。
a.添加元素
stack添加元素是用push()方法的,比如:s.push("aaa");这是指在statck中添加aaa元素压入栈中
b.移除元素:
s.pop();这是移除栈顶的元素 是栈顶
c.查看元素:
Syso(s.peek());查看栈顶的元素,表示只查看不剔除。
---------------------------------------------------------------------------------------------
Ⅳ:Vector 底层是对象数组,线程安全的(同步)
Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的 Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常。
---------------------------------------
以上是List 列表的知识点
===================================================================================
下面是Set 集的知识点回顾:
===================================================================================
Set 不能有重复的元素、没有索引
Ⅰ、HashSet
a.添加元素:
set.add("aa"); set.add(new Object());基本上也差不多
b.清除元素用的也是clear();
c.移除 remove()的用法
d,遍历HashSet: 注意,这里只能用迭代器(Iterator)遍历,因为Set集中是没有索引的,所以不能用for。
例如: Iterator it = set.iterator();
while(it.hasNext()){
Object temp = it.next();
System.out.println(temp);
}
e,//由Object类中继承来的hashcode、equals方法
//Set中判断是否是重复的元素的过程:
//1、调用对象的hashcode方法,看返回的哈希码值是否相同,若不相同,则认为是不同的对象
//2、若相同,则再调用equals方法进行判断,若返回false,则认为是不同的对象,否则(返回的是true)则认为是同一个对象
例如 Student stu1 = new Student(1000,"张三");
Student stu2 = new Student(1001,"张三");
// System.out.println(stu1.hashCode());
// System.out.println(stu2.hashCode());
set.add(stu1);
set.add(stu2);
-----------------------------------------------------------------------------------------------
Set:不按照索引、不按照放入的次序存储元素-->无序的
//不能存放重复元素
Ⅱ:TreeSet:具有排序功能的
a.添加元素也是add();//若放入的是数值,则按照数值大小升序排列;//若是字符串则按照字母的字 典顺序。需要注意的是:放入的元素得是同一类型的。
b//若要将自定义的对象放入TreeSet中,必须该对象所在的类是实现了Comparable接口
例如:Student stu1 = new Student(1003,"zhangsan");
Student stu2 = new Student(1000,"lisi");
Student stu3 = new Student(1001,"wangwu");
set.add(stu1);
set.add(stu2);
set.add(stu3);
Iterator<Student> it = set.iterator();
while(it.hasNext()){
Student stu = it.next();
System.out.println(stu.getId()+"\t"+stu.getName());
}
System.out.println(set);
public class Student implements Comparable<Student>{
private int id;
private String name;
>>>>>>(此处省略构造方法和set、get方法)<<<<<
@Override
public int hashCode() {
// System.out.println("调用了hashcode方法");
// return super.hashCode();
return 100;
}
@Override
public boolean equals(Object obj) {
// System.out.println("调用了equals方法");
// return super.equals(obj);
// return true;
Student stu = (Student)obj;
if(this.id==stu.id&&this.name.equals(stu.name)){
return true;
}else{
return false;
}
}
//排序规则
@Override
public int compareTo(Student stu) {
// return this.id-stu.id;//按照id的升序
// return stu.id-this.id;//按照id的降序
// return this.name.compareTo(stu.name);//按照name的升序
return stu.name.compareTo(this.name);
}
}
上面是Set集的回顾(都实现Collection接口)
===================================================================================
下面是Map映射知识点回顾
===================================================================================
/Map:映射关系 存放的是键值对key-value
Map,存放元素是put();方法
1.HashMap:不是线程安全的 key和value都可以为null(但key只能有一个null值,value可以多个)
例如 HashMap map = new HashMap();
map.put("", "");
map.put(null, null);//put()是放入元素
System.out.println(map);
2。Hashtable:1、线程安全的 古老集合 2、key和value都不能为null;获得value值:Object temp = map.get(23);//根据key获得value:-------->get(key);
例如: map.put("sa", "abc");
map.put(23, 34);
map.put(34, "cdf");
map.put(new Object(), "value");
注意map.put(null, "as");//key不能为null
map.put("aa", null);//value也不能为null
Hashtable遍历:
Set sets = map.keySet();//返回所有的key Map中的key是以Set形式存放的,获得所有KEY
Iterator it = sets.iterator();
while(it.hasNext()){
temp = it.next();//将key循环遍历出来
Object value = map.get(temp);//然后根据Key来遍历出value的值
System.out.println(value);
}
System.out.println(map);
3.TreeMap: key具有排序功能 key不能为null value可以为null
//若key是数值 按照数值大小的升序
/*map.put(1001, "value");
map.put(1000, "lue");
map.put(1002, "alue");*/
//若key是字符串,按照字母的字典顺序
/*map.put("bb", 23);
map.put("aa", 123);
map.put("cc", 3323);*/规则和TreeSet差不多,同样只能存放一种类型,只不过TreeMap是一种类型的key。
//若key是自定义的对象,该对象所在的类实现Comparable接口
// Student stu1 = new Student(1003,"zhangsan");
// Student stu2 = new Student(1000,"lisi");
// Student stu3 = new Student(1001,"wangwu");
// map.put(stu1, 123);
// map.put(stu2, 23);
// map.put(stu3, 323);
//
// Set sets = map.keySet();
// Iterator<Student> it = sets.iterator();
// while(it.hasNext()){
// Student stu = it.next();
// System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+map.get(stu));
// }
// System.out.println(map);
// map.put(null, "");//key不能为null
map.put("aa", null);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【有不对的地方,多多批正】
相关推荐
"java常用jar包集合"是一个综合性的资源,涵盖了多种Java开发中常用的技术框架和库,方便开发者快速构建和运行J2EE应用。以下是对这些jar包及其相关知识点的详细说明: 1. **数据库驱动包**: - **JDBC驱动**:...
Java中常用的List实现类包括ArrayList和LinkedList。 - **ArrayList**:基于动态数组实现,适用于频繁的读取操作。 - **LinkedList**:基于链表实现,适用于频繁的插入和删除操作。 例如,添加元素到ArrayList: ...
2. **数组与语句**:在Java中,数组是存储同一类型数据的有序集合。学习如何声明、初始化和操作数组至关重要,包括一维数组、二维数组和多维数组。此外,语句如跳转语句(break和continue)和声明语句也是程序流程...
Java基础知识总结涵盖了Java程序设计语言的核心概念和常用知识点。在详细学习和总结这些知识点之前,首先需要对Java有一个整体的认识。Java是一种面向对象的编程语言,它具有跨平台的特性,即“一次编写,到处运行”...
3. **接口**:接口在Java中扮演着规范和契约的角色,它定义了一组方法签名,但不提供具体的实现。一个类可以实现多个接口,以达到多重继承的效果。 4. **异常处理**:Java的异常处理机制使得程序在遇到错误时能够...
Java集合框架是Java编程语言中的一个核心部分,它为数据存储和管理提供了高效且灵活的解决方案。本思维导图及总结旨在深入理解并掌握Java集合的相关概念和使用方法。 首先,我们来了解一下Java集合框架的基本构成。...
这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...
这份名为“Java基础知识PDF格式”的资料,应该是针对初学者设计的一份教程,旨在帮助读者掌握Java编程的基础概念和技能。在Java的世界里,基础知识包括但不限于以下几个方面: 1. **Java语法**:Java的语法与C++...
在Java中,数组是一种存储相同类型数据的集合。数组的声明有以下两种形式: 1. type var[]; 2. type[] var; 例如,声明一个整型数组: ```java int[] numbers; ``` 创建数组需要使用`new`关键字,指定数组元素的...
这份"Java基础知识PPT"涵盖了Java学习的核心概念,对于初学者来说是一份非常宝贵的资料。 1. **Java简介**:Java最初由James Gosling等人开发,其设计理念是“一次编写,到处运行”。它基于C++,但简化了语法,去除...
本文将深入探讨Java中常用的集合类型,主要包括Set、List和Map,以及它们的接口、实现类和算法。 首先,集合框架的核心设计理念是接口、实现和算法的分离。这意味着,通过接口,我们可以定义集合的基本操作,而具体...
3. **控制结构**:Java中的控制结构包括条件语句(if、if-else、switch)和循环(for、while、do-while),用于控制程序的流程。 4. **类与对象**:在Java中,一切皆为对象。类是创建对象的模板,它定义了对象的...
本教程主要围绕“Java基础知识简介”展开,包括Java语言概述、课程架构、Java SE结构、常用命令操作、语言特性、JDK配置与环境变量设置以及Java注释和API的使用。 首先,Java语言概述部分会介绍Java的历史背景,它...
这本书“Java基础知识电子书”是为初学者准备的,旨在帮助他们理解和掌握Java编程的基本概念和语法。 Java的基础知识主要包括以下几个方面: 1. **Java环境配置**:在开始编程之前,需要安装Java Development Kit ...
Java基础知识 第07章_Java集合(共51页).pptx Java基础知识 第08章_泛型(共22页).pptx Java基础知识 第09章_枚举&注解(共22页).pptx Java基础知识 第10章_IO(共56页).pptx Java基础知识 第11章_多线程(共54页).pptx ...
在Java中,集合可以保存对象的引用,而数组则可以保存基本类型和对象。 - **集合和数组的区别**:集合只能保存对象,而数组可以保存基本类型和对象。集合提供了更灵活的数据管理方式,例如动态扩容和多样化数据结构...
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。...本资源主要分享了Java基础知识--集合的PPT课件+总结+代码,供大家学习交流~
14. 超市库存管理系统案例:通过构建一个简单的库存管理系统,综合运用Java基础知识。 15. 循环练习:通过编程练习题加深对循环结构的理解和掌握。 16. 数组方法练习:通过编写代码练习数组操作,包括打印、逆序...
Java编程基础笔记主要聚焦在集合框架上,这是Java编程中不可或缺的部分。集合框架是Java提供的一组接口和类,用于存储和操作数据。它包括两种主要类型:Collection和Map。 Collection是所有单值容器的超接口,其中...