集合简概

集合框架学习理由:

Java是面向对象的语言,Java的大部分应用都涉及到对存储对象的增,删,查,改操作。

数组可以用来存储多个对象,由于数组的长度固定,对于对象的增删改操作非常麻烦,而集合类则能够满足我们的需求。

数组和集合的区别:

长度

数组的长度固定不变,不能做更改。

集合长度是可以根据实际需要做更改。

内容

数组存储的必须是同一种类型的元素。

集合可以存储不同类型的元素,没有限定。

数据类型

数组可以存储基本数据类型,也可以存储引用数据类型。

集合只能存储引用类型,虽然不能存储基本数据类型,但是可以存储基本数据类型的包装类类型。

集合是一套框架,必须具备以下方法,且顶层父类应该设计成接口,用来完成数据的增,删,查,改操作。

特点:

1.集合是有序的(存储有序)

2.有索引,方便查找和修改

3.List集合可重复

4.允许存储null值

所有方法:

添加

boolean add(Object obj) 往集合里增加某个元素;

boolean addAll(Collection c) 将另一个集合增加到某一个集合里;

void add(int index, E element) 从某节点插入某一个元素;

boolean addAll(int index, Collection<? extends E> c)

删除

void clear() 清除集合内所有元素;

boolean remove(Object o) 移除某一个元素;

boolean removeAll(Collection<?> c) 移除集合内所有元素;

Object remove(int index) 从某节点移除某一个元素;

修改

Object set(int index, E element)

遍历

Object[] toArray()

Iterator iterator()

T[] toArray(T[] a)

ListIterator listIterator()

ListIterator listIterator(int index)

判断

boolean contains(Object o) 是否含有某一个元素

boolean containsAll(Collection<?> c) 是否含有某个集合

boolean isEmpty() 集合是否为空

其他

boolean retainAll(Collection<?> c)

获取

int size() 获取集合长度;

int indexOf(Object o)

Object get(int index)

int lastIndexOf(Object o)

List subList(int fromIndex, int toIndex)

应用案例:

import java.awt.List;

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class kookv0427 {

private static Object Idol;

public static void main(String[] args) {

// 创建容器

Collection c1 = new ArrayList();

// 创建爱豆元素对象:姓名,年龄,定位

Idol i1 = new Idol("金南俊",26,"rap");

Idol i2 = new Idol("金硕珍",28,"vocal");

Idol i3 = new Idol("闵玧其",27,"rap");

Idol i4 = new Idol("郑号锡",26,"rap");

Idol i5 = new Idol("朴智旻",25,"vocal");

Idol i6 = new Idol("金泰亨",25,"vocal");

Idol i7 = new Idol("田柾国",23,"vocal");

Idol i8 = new Idol("方时赫",48,"PD");

Idol i9 = new Idol("方时赫",48,"PD");

// 将元素对象储存到集合中

c1.add(i1);

c1.add(i2);

c1.add(i3);

c1.add(i4);

c1.add(i5);

c1.add(i6);

c1.add(i7);

c1.add(i8);

c1.add(i9);

// 遍历集合

Iterator it = c1.iterator();

while (it.hasNext()) {

Object ob = it.next();

Idol i = (Idol) ob;

System.out.println(i);

}

// 去除重复元素

// 1、创建新容器

Collection c2 = new ArrayList();

// 2、遍历旧集合

for (Object ob : c1) {

// 3、判断新集合是否存在这个元素

if (!c2.contains(ob)) {

// 4、如果新集合不存在这个元素就储存到新集合中

c2.add(ob);

}

}

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

// 5、遍历新集合查看是否去除重复元素

for (Object object : c2) {

System.out.println(object);

}

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

// 6、移除方时赫!

System.out.println(c2);

System.out.println("remove:" + c2.remove(i8));

for (Object object : c2) {

System.out.println(object);

}

五种方法遍历集合: //方法一: Object[] obs = c2.toArray(); for(Object object : obs) { System.out.println(object); }

System.out.println("--------------------------------"); 方法二: Iterator it1 = c2.iterator(); while (it1.hasNext()) { Object object = it1.next(); System.out.println(object); }

System.out.println("--------------------------------"); //方法三: for(Iterator iterator = c2.iterator();iterator.hasNext();System.out.println(iterator.next()));

System.out.println("--------------------------------"); //方法四: for (int i = 0; i < c2.size(); i++) { System.out.println(((ArrayList) c2).get(i)); }

System.out.println("--------------------------------"); //方法五: for(Object object : c2){ System.out.println(object); }

}

class Idol{

private String name;

private Integer age;

private String work;

@Override

public String toString() {

return "Idol [name=" + name + ", age=" + age + ", work=" + work + "]";

}

public Idol(String name, Integer age, String work) {

super();

this.name = name;

this.age = age;

this.work = work;

}

public Idol() {

super();

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

public String getWork() {

return work;

}

public void setWork(String work) {

this work = work;

}

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Idol other = (Idol) obj;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}

}

转载于:https://juejin.im/post/5cc46958e51d456e4d4de7b2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值