目录
1、java集合框架包括的内容:
java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。
2、ArrayList集合:
提示:求大小时:String是用length() 集合用size
练习1:
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo1 {
public static void main(String[] args) {
List list=new ArrayList();
//添加数据
list.add("aa");
list.add("bb");
list.add("as");
System.out.println("删除前总共有"+list.size()+"条数据");
//删除数据
list.remove(1);
//删除后 再读取位置1上的数据
System.out.println(list.get(1));
System.out.println("删除后的总数据条数共有"+list.size()+"条数据");
//查询数据
list.get(1);
//遍历循环输出所有数据
for (int i=0;i<list.size();i++){
/* String str=(String)list.get(i);//list.get(i)是Object类型的需要强制转换
System.out.println(str);*/
System.out.println(list.get(i));
}
}
}
练习2:
(1)Dog类:
注意:Java List集合框架之运行结果是class@1540e19d时Java List集合框架之运行结果是class@1540e19d时_保持可爱forever的博客-CSDN博客_为什么输出集合输出的是menu@1540e19d
public class Dog {
private String name;
private int age;
public Dog() {
}
//注意生成带参数的构造方法时 不要忘记写出不带参数的构造函数
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
(2)主函数
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo1 {
public static void main(String[] args) {
List list=new ArrayList();
//添加数据
list.add("aa");
list.add("bb");
list.add("as");
System.out.println("删除前总共有"+list.size()+"条数据");
//删除数据
list.remove(1);
//删除后 再读取位置1上的数据
System.out.println(list.get(1));
System.out.println("删除后的总数据条数共有"+list.size()+"条数据");
//查询数据
list.get(1);
//遍历循环输出所有数据
for (int i=0;i<list.size();i++){
/* String str=(String)list.get(i);//list.get(i)是Object类型的需要强制转换
System.out.println(str);*/
System.out.println(list.get(i));
}
}
}
3、LinkedList集合对象:
练习:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class LinkedListDemo {
public static void main(String[] args) {
//1、创建狗狗对象
Dog dog1 = new Dog("狗1", 12);
Dog dog2 = new Dog("狗2", 12);
Dog dog3 = new Dog("狗3", 12);
//2、创建ArrayList集合对象 默认初容量是10
LinkedList list=new LinkedList();
//3、把Dog添加到ArrayList集合中
list.add(dog1);
list.add(dog2);
list.add(dog3);
//添加到第一位
list.addFirst(dog3);
//添加到最后一位
list.addLast(dog1);
//遍历
for (int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
System.out.println("输出第一位:"+list.getFirst());
System.out.println("输出最后一位:"+list.getLast());
//删除第一位
list.removeFirst();
//删除最后一位
list.removeLast();
//遍历
for (int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
}
}
4、HashMap:
提示:key的值是唯一的 value不唯一
练习:
import java.util.HashMap;
import java.util.Map;
public class HashMapDemo {
public static void main(String[] args) {
//1、创建HashMap集合
Map hashMap=new HashMap();
//2、存值 通过key value存值 key键 value值
hashMap.put(11,"中国");
hashMap.put(12,"美国");
//3、查询总共有几条数据
System.out.println("数据条数:"+hashMap.size());
//4、获取Map的值
String cn=(String)hashMap.get(11);
System.out.println(cn);
}
}
6、迭代器:
1、使用迭代器的步骤:
(1)获取所有的key值
(2)将key值 存到Iterator中 set存储一组不唯一的值 返回类型是set
(3)遍历循环 通过hasNext()判断是否还有值进行循环
例如:
狗狗类:
public class Dog {
private String name;
private int sex;
public Dog() {
}
public Dog(String name, int sex) {
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", sex=" + sex +
'}';
}
}
主函数:
import day20.iterator.Dog;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class IteratorDemo {
public static void main(String[] args) {
//1、创建企鹅对象
Dog d1=new Dog("狗1",1);
Dog d2=new Dog("狗2",2);
Dog d3=new Dog("狗3",2);
Dog d4=new Dog("狗4",1);
//2、创建HapMap对象
Map maps=new HashMap();
//3、存值
maps.put("d1",d1);
maps.put("d2",d2);
maps.put("d3",d3);
maps.put("d4",d4);
/* maps.put("dog5",1);*/
//4、查询总共有多少条数据
System.out.println("总共有"+maps.size()+"条数据");
//5、获取map的值
Dog dog=(Dog) maps.get("d1");//通过键值获取
System.out.println(dog);
/**
* 迭代器的使用
*/
//1、获取所有的key值 存的是对象
Set keys=maps.keySet();//返回的是set 存储的是一组不唯一的值
System.out.println(keys);
//2、将key值 存到Iterator中
Iterator it=keys.iterator();
//3、遍历循环
while (it.hasNext()){//每次循环判断是否有值 如果有值返回true
String key=(String)it.next();//it.next()就是获取set中存取的对象
/* System.out.println(key);*/
Dog object=(Dog) maps.get(key);
System.out.println(object);
}
}
}
7 、泛型:
泛型是解决集合中数据类型不一致、循环过程中可能会报错的问题。
1、List中使用泛型 List<数据类型> list=new ArrayList();
2、HashMap中使用泛型 Map<key的数据类型,value数据类型> maps=new HashMap()
8、foreach增强循环:
1、List中使用增强循环
(1)使用泛型:
(2)没使用泛型:
2、 HashMap中使用增强循环
(1)使用泛型时:
(2)不适用泛型时: