Java集合编程

64 篇文章 1 订阅


    1.在实际企业生产环境下编程,我们通常是用数据结构来封装具体的,代码是直接操作数据结构来完成具体的业务功能;
    2.Java中提供的众多的数据结构具体就表现为Java的集合,例如List、Set、Collection、Map、Iterator、Queue等都是Java中至关重要的内容;
    3.大数据中到处可见集合的使用,因为大数据处理的是数据集!
    4.LinkedList:是一个链表数据结构,具有List的功能,同时又具备Queue的操作方式;(补充:Stack数据结构是先进后出!)
    5.只要输出Java集合中的数据,就一定要使用Iterator接口;

代码示例:

    /**
     * 列表的操作
     */

    public static void listOps(){
        List<String> list = null;
        list = new ArrayList<String>();
        Collection<String> collections = new ArrayList<String>();
        //向列表添加一个元素
        list.add("Spark");
        list.add("Hadoop");
        list.add("Scala");
        list.add("Kafka");
        list.add("Techyon");
        list.add("Kafka");
        list.add("Techyon");
        collections.add("Hive");
        collections.add("MySQL");
        collections.add("Hbase");
        //向列表同时添加多个元素
        list.addAll(collections);
        System.out.println(list);

        //删除元素
        list.remove(0);//删除指定索引的元素
        System.out.println(list);
        list.remove("MySQL"); //删除指定的元素
        System.out.println(list);
        //遍历列表
        for (int i =0;i < list.size(); i++){
            System.out.print(list.get(i)+"\t");
        }
        System.out.println();
        //将列表转化为字符串数组
        String[] data =  list.toArray(new String[]{});
        for (String item:data){
            System.out.println(item);
        }
        //截取列表的子链表,包括【1,3)
        List<String> subList = list.subList(1,3);
        for (String item:subList){
            System.out.println(item);
        }
    }

 

    /**
     * linkedList--双向列表
     */
    private static void linkedListOps() {
        LinkedList<String> linkedList = new LinkedList<String>();
        linkedList.add("A");
        linkedList.add("B");
        linkedList.add("C");
        linkedList.add("D");
        System.out.println(linkedList);
        linkedList.addFirst("0");
        linkedList.addLast("9");
        System.out.println(linkedList);
    }

 

    /**
     * 迭代器操作
     *
     */
    private static void iteratorOps() {
        LinkedList<String> linkedList = new LinkedList<String>();
        linkedList.add("A");
        linkedList.add("B");
        linkedList.add("C");
        linkedList.add("D");
        linkedList.addFirst("0");
        linkedList.addLast("9");
        Iterator<String> iterator = linkedList.iterator();
        while (iterator.hasNext()){
            String item = iterator.next();
            if ("C".equals(item)){
                iterator.remove();
            }else{
                System.out.println(item);
            }
        }
        Iterator<String> iterator1 = iterator;
        while (iterator1.hasNext()){
            System.out.println(iterator1.next());
        }
    }

 

    /**
     * ListIterator--允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置
     */
    private static void listIteratorOps() {
        LinkedList<String> linkedList = new LinkedList<String>();
        linkedList.add("A");
        linkedList.add("B");
        linkedList.add("C");
        linkedList.add("D");
        linkedList.addFirst("0");
        linkedList.addLast("9");
        ListIterator<String> iterator = linkedList.listIterator();
        while (iterator.hasNext()){
            String item = iterator.next();
        }
        while (iterator.hasPrevious()){
            System.out.println(iterator.previous());
        }

    }

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的Map是一种用于存储键值对的集合,可以通过key来快速定位value。以下是一个Java Map编程题的示例: 题目描述: 给定一个字符串数组,其中每个字符串代表一种水果,要求统计每种水果出现的次数,并按出现次数从高到低排序输出。 示例输入: ["apple", "banana", "orange", "apple", "banana", "apple"] 示例输出: apple: 3 banana: 2 orange: 1 解题思路: 1. 首先创建一个HashMap<String, Integer>对象,用于存储每种水果出现的次数。 2. 遍历输入的字符串数组,对于每个字符串,判断HashMap中是否已经存在该种水果,若存在,则将该水果对应的值加1,否则将该水果加入HashMap,并将其对应的值设为1。 3. 将HashMap中的键值对按照值从高到低排序,并输出结果。 参考代码: ``` import java.util.*; public class FruitCount { public static void main(String[] args) { String[] fruits = {"apple", "banana", "orange", "apple", "banana", "apple"}; Map<String, Integer> map = new HashMap<>(); for (String fruit : fruits) { if (map.containsKey(fruit)) { map.put(fruit, map.get(fruit) + 1); } else { map.put(fruit, 1); } } List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue() - o1.getValue(); } }); for (Map.Entry<String, Integer> entry : list) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值