集合框架学习理由:
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;}}