Java程序设计基础第四课:Java集合

一、Java集合

ArrayList来自于List接口。三个比较重要的接口分别为:Iterator迭代器接口Collection接口Map接口

List接口包含两个类:ArrayList,LinkedList。ArrayList为线性结构,这种结构的特点为:读取数据方便添加、删除数据麻烦LinkedList为链表结构,这种结构的特点为:读取效率低添加、删除、修改效率高。在实际的处理过程中,往往把线性结构和链式结构合在一起。读取使用线性结构,保存数据使用链表结构,即读写分离

在LinkedList链表列表类型中,存在三个变量。引入一个结点类型Node,其中包含前指针prev、后指针next、内容item。添加方法add、删除方法remove、查找方法get、修改方法set

二、示例代码

import java.util.TreeSet;
public class My_TreeSet {
    public static void main(String[] args) {
        TreeSet<Integer> mytree = new TreeSet<>();
        mytree.add(1);
        mytree.add(2);
        mytree.add(4);
        mytree.add(3);
        mytree.add(1);
        mytree.add(2);
        System.out.println(mytree);
    }
}

import java.util.ArrayList;
import java.util.Iterator;
public class myIterator {
    public static void main(String[] args) {
        ArrayList<Integer> ss=new ArrayList<Integer>();
        ss.add(1);
        ss.add(2);
        Iterator myiter=ss.iterator();
        System.out.println(myiter);
        System.out.println(myiter.next());
        System.out.println(myiter.next());
    }
}

import java.util.*;
public class test_hashMap {
    public static void main(String[] args) {
        //Map是值对,必须指定key和value的类型
        Map<String,String> maps=new HashMap<>();
        maps.put("姓名","张三");
        maps.put("年龄","32");
        maps.put("性别","男");
        //后面key值为“姓名”,就把前面的key值姓名做覆盖
        maps.put("姓名","李四");
        System.out.println(maps);
        //遍历map,使用key和value
        System.out.println("第一种方法遍历map");
        //第一种map的遍历方法,使用keySet方法
        Set<String> mykeys=maps.keySet();
        //遍历这个key,根据key取value
        for(String key:mykeys){
            //里面的变量都是for的全局
            System.out.println(key+"————————>"+maps.get(key));
        }
        System.out.println("第二种方法遍历map");
        //第二种map的遍历方法,都有一个Iterator,使用迭代器遍历map
        Set<String> myotherkeys=maps.keySet();
        //调用集合set的迭代器,iterator方法获取到这个集合的迭代器
        Iterator<String> myiter=myotherkeys.iterator();
        //采用遍历迭代器方法
        while(myiter.hasNext()){
            String key=myiter.next();
            //再取value
            String value=maps.get(key);
            System.out.println(key+"————————>"+value);
        }
        System.out.println("第三种方法遍历map");
        //第三种map的遍历方法
        Set<Map.Entry<String,String>> myentrys=maps.entrySet();
        for(Map.Entry<String,String> entry:myentrys){
            String key=entry.getKey();
            String value=entry.getValue();
            System.out.println(key+"————————>"+value);
        }
        System.out.println("第四种方法遍历map");
        //第四种map的遍历方法,使用entrySet,用迭代器的形式
        Set<Map.Entry<String,String>> myentry=maps.entrySet();
        //获取entrySet的迭代器
        Iterator myiter1=myentry.iterator();
        //迭代器不清楚列表元素的个数
        while(myiter1.hasNext()){
            Map.Entry<String,String> entry1=(Map.Entry<String,String>)myiter1.next();
            String key=entry1.getKey();
            String value=entry1.getValue();
            System.out.println(key+"————————>"+value);
        }
        System.out.println("第五种方法遍历map");
        //第五种map的遍历方法,可以通过values获取Map中的所有值
        //遍历所有值
        Collection<String> myvalues=maps.values();
        ArrayList<String> mylist=new ArrayList(myvalues);
        //遍历所有键
        Set<String> myanotherkeys=maps.keySet();
        ArrayList<String> mysets=new ArrayList(myanotherkeys);
        //获取所有键或值的任意一个长度
        int len=mysets.size();
        //把每个键与每个值做对应
        for(int i=0;i<len;i++){
            System.out.println(mysets.get(i)+"————————>"+mylist.get(i));
        }
        //删除remove
        maps.remove("年龄");
        System.out.println(maps);
        //put修改
        maps.put("性别","女");
        System.out.println(maps);
    }
}

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class testArray_list {
    public static void main(String[] args) {
        //给定java的列数据列表[1,2,4,2,5,3,1,2,3,5],把这个列表去重。
        List<Integer> arrs= new ArrayList<Integer>();
        arrs.add(1);
        arrs.add(2);
        arrs.add(4);
        arrs.add(2);
        arrs.add(5);
        arrs.add(3);
        arrs.add(1);
        arrs.add(2);
        arrs.add(3);
        arrs.add(5);
        Set<Integer> mysets=new HashSet<Integer>(arrs);
        System.out.println(mysets);
    }
}

import java.util.LinkedList;
public class testLinkedList {
    public static void main(String[] args) {
        LinkedList<Object> linked = new LinkedList<>();
        //添加一个元素
        linked.add(1);
        linked.add(2);
        //查询
        System.out.println(linked);
        //删除
        linked.remove(1);
        //修改
        linked.set(0,10);
        //打印列表
        System.out.println(linked.get(1));
    }
}

import java.util.ArrayList;
import java.util.LinkedList;
public class testList {
    public static void main(String[] args) {
        ArrayList<Integer> mylist = new ArrayList<>();
        mylist.add(1);
        mylist.add(2);
        mylist.add(1);
        mylist.add(1);
        System.out.println(mylist);
        LinkedList<Integer> mylists = new LinkedList<>();
        mylists.add(1);
        mylists.add(2);
        mylists.add(1);
        mylists.add(1);
        System.out.println(mylists);
    }
}

import java.util.HashSet;
import java.util.Set;
public class testSet {
    public static void main(String[] args) {
        Set<Integer> mysets = new HashSet<>();
        mysets.add(1);
        mysets.add(2);
        mysets.add(1);
        mysets.add(1);
        System.out.println(mysets);
    }
}

三、运行结果

 需要完整版资源请访问博主个人码云地址:JavaSS: Java实训

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值