当前位置: 首页 > 图灵资讯 > 技术篇> 集合简概

集合简概

来源:图灵教育
时间:2023-05-31 09:12:03

集合框架学习理由:

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

数组可以用来存储多个对象。由于数组的长度是固定的,因此添加、删除和更改对象非常麻烦,而集合类可以满足我们的需求。

数组与集合的区别:

长度

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

可根据实际需要改变集合长度。

内容

数组必须存储相同类型的元素。

不同类型的元素可以在没有限制的情况下存储。

数据类型

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

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

集合是一套框架,必须有以下方法,顶层父类应设计成接口,以完成数据的增加、删除、检查和更改操作。

特点:

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

2.有索引,便于搜索和修改

3.List集合可重复

4.允许存储nulll值

所有方法:

添加

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<E> iterator()

<T> T[] toArray(T[] a)

ListIterator<E> listIterator()

ListIterator<E> 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)

应用案例:

i

mport 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 Idol23.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、判断这个元素是否存在于新集合中 (!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<Object> it1 = c2.iterator();             while (it1.hasNext()) {                 Object object = it1.next();                 System.out.println(object);                             }                          System.out.println("--------------------------------"); //            方法三:             for(Iterator<Object> 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<Object>) 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;@Overridepublic 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;         }@Overridepublic 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;}}