集合
接口Collection
ArrayList
import java.util.ArrayList;
public class List {
public static void main(String[] args) {
//ArrayList 遍历快 LinkedList 插入删除快
//String此处作用限制存入Array中的类型,<>中不能放简单数据类型
ArrayList<String> list1=new ArrayList<>();
String s="abc";
list1.add(s);//将指定的元素添加到此列表的尾部
list1.add("w");
list1.add("a");
list1.add("n");
list1.add("g");
for (int i = 0; i < list1.size(); i++) {//遍历
System.out.println(list1.get(i));
}
System.out.println(list1.contains("w"));//如果此列表中包含指定的元素,则返回 true
System.out.println(list1.get(2));//返回此列表中指定位置上的元素
ArrayList<String> list2=new ArrayList<>();
//按照指定 collection 的迭代器所返回的元素顺序,将该 collection 中的所有元素添加到此列表的尾部
list2.addAll(list1);
list2.remove("w");// 移除此列表中指定位置上的元素
System.out.println(list2.contains("s"));
//返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1
System.out.println(list2.indexOf("n"));
}
}
set+接口Iterator
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
public class Set {
public static void main(String[] args){
//set不可重复 HashSet无序 TreeSet有序
//随机10个不同的两位数
ArrayList<Integer> ab=new ArrayList<>();
ab.add(1);
ab.add(5);
ab.add(7);
ab.add(0);
ab.add(7);
//固定用法,和下面的for循环一样
for (Integer integer : ab) {//类型+变量名:需要遍历的ArrayList变量
System.out.println(integer);
}
// for (int i = 0; i < ab.size(); i++) {
// System.out.println(ab.get(i));
// }
//随机两位数
HashSet<Integer> set=new HashSet<>();//<>不能加简单数据类型,int类型对应的Interger可以
Random random=new Random();
int count=0;
while(set.size()<10){
int i=random.nextInt(90)+10;
System.out.println(count++ +"随机得到的数据"+i);//count++ 计数器
set.add(i);
}
//遍历
返回对此 set 中元素进行迭代的迭代器。返回元素的顺序并不是特定的
Iterator<Integer> it=set.iterator();
// hasNext()如果仍有元素可以迭代,则返回 true
while(it.hasNext()){
int i=it.next();// 返回迭代的下一个元素
System.out.println(i);
}
System.out.println("已经放进去了"+set.size()+"各数据");
}
}
Map
HashMap
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(String name){
this.name=name;
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest {
public static void main(String[] args) {
HashMap<String,Student> map=new HashMap<>();
Student zhangsan=new Student("张三");
String name="张三";
map.put(name, zhangsan);// 在此映射中关联指定值与指定键
map.put(null, new Student("key是空的"));
map.put("李四", new Student("李四"));
map.put("wangwu", new Student("王五"));
System.out.println(map.size());
System.out.println(map.get(name).getName());//getname判断是否为空,空的话返回null
//遍历
Set<String> keys=map.keySet();//得到所有的key值
Iterator<String> it=keys.iterator();//得到keys的迭代器
while(it.hasNext()){
String key=it.next();
Student stu=map.get(key);//map中通过key得到value方法
System.out.println(stu.getName());
}
}
}
Collections类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
import java.util.Comparator;
public class StuComparator implements Comparator<Student>{
@Override
//定义比较方法
public int compare(Student stu1, Student stu2) {
return stu1.getAge()-stu2.getAge();
}
}
public static void main(String[] args) {
ArrayList<Student> clazz =new ArrayList<>();
clazz.add(new Student("张三",18));
clazz.add(new Student("李四",14));
clazz.add(new Student("王五",16));
clazz.add(new Student("赵六",20));
clazz.add(new Student("码子",15));
clazz.add(new Student("刘丹",21));
clazz.add(new Student("王二狗",19));
clazz.add(new Student("李撇嘴",17));
Collections.sort(clazz,new StuComparator());//
//翻转
// Collections.reverse(clazz);
for (Student stu : clazz) {
System.out.println(stu.getName()+stu.getAge());
}
}
}
泛型
public class Pet {
}
public class Cat extends Pet{
public void miao(){
System.out.println("喵喵叫");
}
}
public class Dog extends Pet{
public void yao(){
System.out.println("咬人");
}
}
public class NanZhuang {
public void ok(){
System.out.println("帅哥,约么");
}
}
public class NvZhuang {
}
public class Student<T,K> {//在K后面加上 extends Pet限制K为Pet类
private String name;
private int age;
private T clothes;
private K pet;
public Student(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public T getClothes() {
return clothes;
}
public void setClothes(T clothes) {
this.clothes = clothes;
}
public K getPet() {
return pet;
}
public void setPet(K pet) {
this.pet = pet;
}
}
public class Test {
public static void main(String[] args) {
Student<NanZhuang,Dog> zhangsan=new Student("张三",18);
Student<NvZhuang,Cat> xiaohong=new Student("小红",14);
NanZhuang nan=new NanZhuang();
NvZhuang nv=new NvZhuang();
zhangsan.setClothes(nan);
zhangsan.getClothes().ok();
//两种表达方式
xiaohong.setPet( new Cat());
Cat x=xiaohong.getPet();
x.miao();
}
}