package com.practice;
public class JiHe {
public static void main(String[] args) {
/*数组特点:
* 1.存储多个同种类型的数据
* 2.长度固定
* 3.数组有默认值
* */
/* 集合的特点:
1.长度可以随意更改
2.集合只能存储对象
3.集合没有默认值
* */
/* Collection:(单列集合的根接口):根据存取数据方式的不同分为了List和Set
List的特点:1.存储数据是有序的。2.数据的存放是有索引标志的。3.数据允许重复
List分为ArrayList和LinkedList
ArrayList:底层是数组,所以他是以数组的方式存取数据
LinkedList:底层是链表,按照链表的方式存储数据
*/
}
}
package com.practice;
import java.util.ArrayList;
import java.util.Collection;
public class JiHe1 {
public static void main(String[] args) {
//创建集合的对象
//因为Collection是接口,所以要运动多态创建对象,父类的引用指向子类的对象
Collection c=new ArrayList();//多态知识
System.out.println(c);//[]
//向集合中添加元素 add(Object e)
c.add(1);//集合中只能添加对象,这里的1实现了自动装箱
c.add("java");
System.out.println(c);//[1, java]
c.add(1);
System.out.println(c);//[1, java, 1] 允许添加重复内容
/*//清空元素的方法:clear()
c.clear();
System.out.println(c);//[] 元素清空*/
//判断集合中是否包含某个元素 boolean contains(Object o)
boolean a = c.contains("a");
boolean java = c.contains("java");
System.out.println(a);//false
System.out.println(java);//true
//根据元素的内容来删除某个元素 boolean remove(Object o)
boolean remove = c.remove(a);
System.out.println(remove);//false 返回值是是否删除成功,因为集合中没有a元素,所以删除失败
//remove 一次只能删除重复数据中的一个,例如有两个a,他一次只能删除一个
//获取集合的元素数 int size()
int size = c.size();
System.out.println(size);//3
//集合转换为数组Object[] toArray() 返回的类型是Object的数组
//遍历集合的方式1 利益toArray()
Object[] objects = c.toArray();
for(int i=0;i< objects.length;i++){
System.out.println(objects[i]);
}
}
}
package com.practice;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class JiHe2 {
public static void main(String[] args) {
//创建对象
Collection c=new ArrayList();
//存放数值
c.add("haha");
c.add("java");
method(c);
//使用迭代器添加元素
}
private static void method(Collection c) {
//遍历集合的第二种方式
/*使用迭代器遍历集合
* 步骤:1.创建迭代器的对象
* 2.判断集合中是否有元素可取
* 3.输出*/
//创建迭代器的对象
Iterator it = c.iterator();
//判断是否有可取元素
while(it.hasNext()){
System.out.println(it.next());
}
}
}
package com.practice;
import java.util.*;
public class JiHe3 {
public static void main(String[] args) {
//往迭代器中添加元素,要用到List中的ListIterator,他中间有个add方法,不能用Collection中的Iterator,会报并发异常
//创建List集合对象
Collection c=new ArrayList();
List l=new ArrayList();
l.add("web");
l.add("php");
l.add("java");
//method(c);
//解决并发异常的方法
//定义List的迭代器
ListIterator it = l.listIterator();
//判断并遍历数组
while(it.hasNext()){
//强转返回的值
String s=(String)it.next();
if(s.equals("java")){
//l.add("html"); 错误,不能往集合中添加元素,要往迭代器中添加元素
it.add("html");
}
}
System.out.println(l);
}
private static void method(Collection c) {
c.add("web");
c.add("php");
c.add("java");
//定义迭代器
Iterator it1 = c.iterator();
//判断并对集合遍历
while(it1.hasNext()){
//对返回的值进行强转
// Object next = it1.next();
String next =(String) it1.next();
if(next.equals("php")){
c.add("html");
}
}
System.out.println(c);//报错 并发异常
}
}
package com.practice;
import java.util.ArrayList;
import java.util.Collection;
public class JiHe4 {
public static void main(String[] args) {
//集合遍历的第三种方式 增强for
/*增强for的格式:
* for(元素类型 变量名: 集合对象){
* }
* 元素类型 变量名:用来接收每次遍历的元素
* */
Collection c=new ArrayList();
c.add("web");
c.add("php");
c.add("java");
for(Object o:c){
System.out.println(o);
}
}
}