java集合框架-小白学习中

java集合框架

由于是初学,所以只介绍“增删改查”四种方法。
JAVA集合主要包括:
ArrayList
集合遍历
LinkedList
HashSet
TreeSet
Map
HashMap
TreeMap

这里着重介绍ArrayList

ArrayList集合

底层是Object数组
格式:List< E > a=new ArrayList<>();

List< Integer > a=new ArrayList<>();

==================================================
解析:E为数据类型,包含引用数据类型和基本类型。
但是,基本类型必须变成包装类,例如:
byte->Byte
short->Short
long->Long
float->Float
double->Double
boolean->Boolean
int->Integer
char->Character

==================================================
1.增加方法:a.add(E e);

a.add(5);

2.删除方法:a.remove(int index);

a.remove(1);

index是索引编号,从0开始的。用于删除指定编号的元素。
或者:a.remove(E e);

a.remove((Integer) 4);

用于删除a集合当中首次出现的元素e。
清除集合中所有的元素:a.clear();

a.clear();

3.改变元素方法:a.set(int index,E e);

a.set(3,5);

将集合a中的索引编号为index上的元素变为e。

4.查询方法:a.get(int index);

System.out.println(a.get(2));

用于查询索引编号为index上的元素,并返回。

5.其他方法
(1)求集合的长度:int b=a.size();

int length=a.size();

(2)测试集合是否没有元素:

boolean ffff=a.isEmpty();

没有元素的话,返回true。
(3)用于返回该元素在集合中最后一次出现的位置索引。
a.lastIndexOf(Object elem);

System.out.println(a.lastIndexOf(5));

(4)对集合进行升序排序,对汉语无用。

Collections.sort(a);

(5)将集合a中所有的元素加入到集合c中。

ArrayList< Integer > c=new ArrayList<>();
c.addAll(a);

(6)将集合进行逆序输出

List gg=new LinkedList<>();
Collections.reverse(gg);
System.out.println(gg);

(7)将集合a中的元素按照正确的顺序加入的数组当中。
Object[] o=a.toArray();

Object[] b=a.toArray();

==================================================

集合遍历
1.传统for循环 >for (int i = 0; i < a.size(); i++) { System.out.println(a.get(i)); }

2.高级for循环

for (Integer gg : a) {
System.out.println(gg);
}

3.lambda表达式(比较重要)

a.forEach(t->{
System.out.println(t);
});

==================================================

LinkedList集合

格式:List< E > a=new LinkedList<>();

List< Integer > a=new LinkedList<>();

底层是链表。
由于和ArrayList公用同一个接口List,所以“增删改查”的方法大致相同。
LinkedList和ArrayList两者但是有序和可重复的。
两者之间的比较:
ArrayList,增删很慢,查询很快。
LinkedList,增删很快,查询很慢。

HashSet集合
(哈希Set)

底层是哈希码。无序不可重复。
格式:Set< E > a=new HashSet<>();

Set< Integer > a=new HashSet<>();

1.增加方法:a.add(E e);
2.删除方法:a.remove(Object e);
由于是无序的,所以只能通过对应元素进行删除。
清除方法:a.clear();
3.修改方法:无。只能先删除再进行添加。
4.查询方法:a.contains(Object o);
判断集合是否包含指定元素,包含则返回true。
5.拥有toArrars()方法,与ArrayList的用法相同。

TreeSet集合

底层是二叉树。不可重复,但是对于实现了comparable或comparator接口的类型有序。
comparable:八种基本数据类型都实现了,String中的英文也可以。
格式:Set< E > a=new TreeSet<>();

Set< Integer > a=new TreeSet<>();

由于和HashSet公用同一个接口Set,所以“增删改查”的方法大致相同。
TreeSet和HashSet都是无序的,使所以都是用lambda表达式进行遍历的。


Map集合

之前的几个集合都是单列型的,而Map集合是双列型的。
存放数据无序,key不可以重复,value可以重复。

HashMap集合

底层是哈希表。key对应的记录无序。
默认初始容量是16,加载因子是0.75(如果有第17个元素要加进来,则容量变为16+16x0.75=28,而不是16x2=32)
格式 Map< key,value> a=new HashMap<>();

Map<Integer,String> hash=new HashMap<>();

1.增加方法:hash.put(key k,value v);

hash.put(1,“蒙多”);

2.删除方法:hash.remove(key k);

hash.remove(1);

通过key进行删除。
清除方法:hash.clear();
3.修改方法:通过增加方法进行实现。

hash.put(1,“塞恩”);

4.查询方法:hash.get(key k);

hash.get(1);

通过key查询value。
5.其他方法:

hash.containsKey(1);

hash.containsKey(key k);
用于判断是否包含指定的键(key),包含则返回true。
6.可以直接打印:

System.out.println(hash);

TreeMap集合

底层是二叉树。默认初始容量是16,加载因子是0.75。
由于和HashMap公用同一个接口Map,所以“增删改查”的方法大致相同。
格式 Map< key,value> a=new TreeMap<>();

Map<Integer,String> tree=new TreeMap<>();

TreeMap和HashMap的遍历推荐使用lambda表达式。

tree.forEach((k,v)->{
System.out.println(k+"="+v);
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值