Java集合的基础知识

集合类型的特点:

1.和数组比较长度,数组长度固定,集合可以随便添加元素

2.数组,任意的类型,集合引用的类型,基本数据类型,需要包装类

集合更贴切java自己的面向对象

集合类,long不需要导包

更方便,更加简单的操作

所有类的父类都是object

要求放什么

房子类都可以放进去

Collection,接口

List(接口)集合添加的元素是有序的,可重复的,有索引的

Set(接口)集合添加的元素是无序,不重复,无索引的

LIst Set不能new对像,匿名内部类,需要重写所有方法

ArrayList底层是数组,有下表很像数组,方法调用

Linked双向链表

HashSet 

迭代器,专门为了集合而生,遍历集合

for i 循环的时候,删除的时候会发生错误,还有可能会数组越界

提供了remove方法

迭代器只能用一次

List接口是有序的,存入和取出的顺序一致,允许添加重复的元素

Set是无序的Map,也是无序的,所有不能重复元素

list的自己的方法

add 继承了O还有自己的add重载了

重写

名称,参数列表,返回值,

异常

访问权限

1.get    rangcheck

指定位置添加其他后移add 

add all

4.indexOf

5.lastindexof从后最后一次出现的位置

6.remove删除并返回

3.set替换成相应的值

subList

7.subSpring切割

List subList要钱不要后

减法sub

mul div reamdner

遍历,要toArry?重写了 toString

有序可重复,才可以下标

,删除之后剩下的下标会向前补位

用迭代器删除比较好

自己删除容易出错

细微的区别,为什么喜欢ArryList

开头

pop弹出

instead  of

LinkedList   链表

1.Array查找更快

2.链表查找慢,因为不是连续的

3.加中括号?

4.改一下指针

新增快Linked

查看数据大多数,所以大多数是ARR

查询修改块

新增删除块

底层的区别

替换迭代器

规定就是泛型

Set接口

特点

无序,存入的顺序和取出的顺序不一定相同

有序,存入的顺序和取出的顺序相同

因为无序所以set集合的元素不可以重复,放入重复的元素,会怎么样?

toString方法会不会重写了然后取出元素了,也是无序的,数字

接口不可以直接new,要new实现类

放1和对象实现了Comparable自定义的类放入set要实现接口才可以放进去

没有放进去重复的,放进去的是第一个放进去的,同一个类的,会不会放进去

TreeSet放的类要放同一个类,而且自己定义的类要实现Compare接口实现方法

还是相同的,但是字符串还是给排序了,因为取出来是无序的

Set呢?

hash和inter

1.TreeSet可以自动对数字进行排序

字符串时间,系统自己带的

他们还重写了方法如果1换位置,-1不换,0,一样不添加

hashSet

2.用来进行比较然后放值,有比较器,需要同类型。

3只能修改自己的不能修改Java自己带的

软键设计的六大原则之一开闭原则,对修改关闭,对扩展开放

第一个,比较器,无法修改全部

第二个,通过扩展来实现,扩展继承,实现,匿名内部

comparator

TreeSet构造方法传一个new 匿名内部类,重写它,通过compare

ApI数组的排序

Collections.sort排序,对List也是比较器比较

不用实现一个类了 Coppartor的优先级高

先有Set?然后实现自己的重写方式

set是无序的,treeSet是有进行了序的比较器,list有序,通过比较器进行有序

比较器,

List

现在单纯是比较器的问题了

还有list本身的方法sort方法

稀土掘金

被背刺

i2-i1倒序,i1-i2是正序,String转int,interger的方法pareInt

泛型

引用数据类型都能放

规定的类型,只能放规定的类型

<E>

加入那个类.add只能加Student

泛型为什么要存在

经常报错,类型转换异常,类型转换异常

for,直接写这个类型,可以直接写这个类型的方法,

传进来的都是泛型。全部被替换成了这个类的方法直接用

自定义泛型

如何自定义范型

E   element因为集合中存放的是元素

KV

?不确定

上界通配符

super

通配符,非强制

优点:规定了传入的某一个类型,传入其他类型会报错,

缺点:不灵活,只能传某一个类型

自定义泛型,这个类就是某一个类了。

字段该是什么类型数据库

身份证号是字符串

手机号也用字符串

手机号有时候有—

二维数组

初识化的分布,哪个是,这个要成员方法

入参的使用,可以给不确定的数,用入参给

三目运算符,?怎么使用。

怎么报错?

integer.passint,字符串转int

hashset的底层是散列表Map

map不是集合,map是个单独的接口,

map里面有很多东西,这个那个的,

散列表

1.调用hashcode方法计算hash值

2.放进数组的位置

3.hash值相同,用equals进行比较

4.相同不添加,不同生成链表,

5.链表个数超过8,该链表自动转化成红黑树

自定义的类要重写equals和hashcode。

泛型更要复写hashcede和equals方法

东西这么深,还有好多东西,

hashmap还有区别,

map.put

hashmap

set所有的v都是空对象的map

重写过后的,东西,比较的时候,生成的hash值,和equals

后面刚不进去,k不会放进去,不放

讲一个add

删除

遍历

hashset

散列表

set和map

map.put

map底层是散列表

hashmap的方法

set还要好用list

set方法少,

不关心v

set绝对不同

set场景单一

重写方法,equals和hashcode

免费领一个学生的服务器,淘宝还要钱

现在需要的是什么?

Map接口

hashMap

底层散列表

treeMap

ssm

properties,文件,读配置

ssm的使用场景

kv

单向,通过key找到唯一的value值

key和value都可以是任何引用数据类型

允许存在value为null,但是只允许一个k

可以去k的重,可以去重取出k

只能放一个null

map Java。util导包记得

put(k,v)

也是有泛型

打印map

k还是原来的k

但是值会被覆盖

我有能力让所有人都,所有人都,

当放入的k相同时,k不变,v被覆盖。

map.size

输出的是个数,

把k传进来,remove

clear

containsKey,返回给Boolean

containsvalue,返回的也是Boolean

map.value

得到值的集合。泛型问题

两个重点方法。

keySet,返回一个集合,set,全是key

get,给key先keyset,然后再get

entrySet

entry接口

map中的接口,可以看作一个实体类

getvalue     getkey

直接entryset

set和map中的key都可以去重,key就是

equals和hashcode怎么去重

treemap

实现接口,和方法comparebale接口和方法,

已经有了

自定义的方法,自己的比较器

匿名内部类

k排序了,v没有排序,

复写了才能写进去

set直接传进listsort,list

integer。passint

自己传?,匿名内部类,传接口

properties

读取配置

密码和值

配置文件,不用继续执行

SSM

new

第一步,读取,

load

传进去,

set

get

1.2.3.备用的东西,默认值

流进来,一直get,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java集合Java编程中非常重要的一部分,它提供了一种方便的方式来处理一组对象。Java集合框架包括List、Set、Map等接口和实现它们的类。下面是Java集合基础知识的介绍: 1. List接口:List是一个有序的集合,它可以包含重复的元素。List接口的常用实现类有ArrayList和LinkedList。其中,ArrayList是一个动态数组,它可以自动扩容以容纳更多的元素;而LinkedList是一个双向链表,它可以快速地在列表中插入或删除元素。 2. Set接口:Set是一个不允许重复元素的集合。Set接口的常用实现类有HashSet和TreeSet。其中,HashSet是一个基于哈希表的实现,它可以快速地查找元素;而TreeSet是一个基于红黑树的实现,它可以对元素进行排序。 3. Map接口:Map是一个键值对的集合,它允许使用键来查找值。Map接口的常用实现类有HashMap和TreeMap。其中,HashMap是一个基于哈希表的实现,它可以快速地查找键值对;而TreeMap是一个基于红黑树的实现,它可以对键进行排序。 下面是一个示例代码,演示了如何使用ArrayList集合存储学生的成绩,并遍历这个集合: ```java // 创建一个ArrayList集合,向这个集合中存入学生的成绩 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(78); al.add(67); // 对集合遍历 // 方式1 for (Object obj : al) { System.out.println(obj);} // 方式2 for (Integer i : al) { System.out.println(i); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值