首页 > 编程语言 >Java集合

Java集合

时间:2022-08-28 18:55:25浏览次数:53  
标签:Java int ArrayList 元素 arrayList1 数组 集合

集合框架组成部分:

1.Collection(存放单列数据):

List接口 存放数据可以允许重复

ArrayList 底层基于数组数据结构实现

LinkedList 底层基于链表数据结构实现

Set接口 不允许存放重复数据

HashSet 不允许存入重复数据,底层基于Map集合实现

2.Map

HashMap底层基于数组+链表实现(jdk1.7)底层基于数组+链表+红黑树实现(jdk1.8)

ArratList集合

ArrayList类是一个可以动态修改的数组,与普通数组最大的区别就是没有固定大小的限制

ArrayList继承了AbstractList,并实现了List接口

ArrayList<>objectName = new ArrayList<>();初始化

ArrayList中的元素实际为对象,在以上实例中,数组列表元素都是字符串String类型

如果要存储其他类型,而E只能为引用数据类型;

在集合中,使用泛型<E>必须使用引用数据类型,如果使用基本数据类型,则要使用其包装类的形式

ArrayList集合常见方法:

 

 Iterator():返回iterator接口的实例,用于遍历集合元素

hasNext():判断是否有下一个元素

next():指针下移,将下移以后集合上的位置上的元素返回

增强for循环:

for(集合元素类型 局部变量:集合对象){

  //code

}

例子:

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

这是一道leetcode上一道难度为困难的例题,我们集合的方法来实现它:

首先看代码:

import java.util.ArrayList;
public class findMedianSortedArrays {
    public static void main(String[] args){
        findMedianSortedArrays f = new findMedianSortedArrays();
        int[] array1 = {1,2};
        int[] array2 = {3,4};
        int[] arr1 = {1,3};
        int[] arr2 = {2};

        System.out.println(f.fun(array1,array2));
        System.out.println(f.fun(arr1,arr2));


    }
    public double fun(int[] sums1, int[] sums2){
        ArrayList<Integer> arrayList1 = new ArrayList<Integer>();

        arrayList1 = fun_res(sums1);
        for (int i = 0;i<sums2.length;i++){
            arrayList1.add(sums2[i]);

        }
        for(int i = 1;i<arrayList1.size();i++){
            for (int j = i-1;j>=0 && arrayList1.get(j)>arrayList1.get(j+1);j--){
                swap(arrayList1,j,j+1);
            }
        }

        double number = 0;

        for (Integer integer:arrayList1){
            if (arrayList1.size() % 2!=0){
                number = arrayList1.get(arrayList1.size()/2);

            }else{
                number = (double) (arrayList1.get(arrayList1.size()/2) + arrayList1.get(arrayList1.size()/2 - 1))/2;
            }
        }
        return number ;
    }
    public ArrayList<Integer> fun_res(int[] array){
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        for (int i = 0;i<array.length;i++){
            arrayList.add(array[i]);
        }
        return arrayList;
    }
    public static void swap(ArrayList arrayList,int i,int j){

        Object temp = arrayList.get(j);
        arrayList.set(j,arrayList.get(i));
        arrayList.set(i,temp);
    }

}

输出结果:

 

 

流程:需要将数组类型元素放到集合里去(ArrayList<Integer> fun_res(int[] array)),然后将第二个数组的元素放到集合里面去,最终我们的集合就包含了这两个数组的所有元素,

然后利用插入排序,对集合里面的元素进行排序,最终通过返回下标的方法,得到中位数。这俩面需要考虑两种情况,一种是元素个数为奇数是,返回中间即可,第二种情况,偶数时,

需要返回(中间+中间-1)/2。

 

标签:Java,int,ArrayList,元素,arrayList1,数组,集合
From: https://www.cnblogs.com/99kol/p/16633381.html

相关文章

  • JavaScript基础介绍三(事件)
    原生js事件绑定我们直接写几个案例,看懂即可开关灯案例变色<script>letbtnEle=document.getElementById('d2')letdivEle=document.getElementById('......
  • Java开发学习(二十七)----SpringMVC之Rest风格解析及快速开发
    一、REST简介REST(RepresentationalStateTransfer),表现形式状态转换,它是一种软件架构风格当我们想表示一个网络资源的时候,可以使用两种方式:传统风格资源描述形式......
  • Java - NIO 总结
    NIO介绍NIO有人称之为non-blockinglO是从Java1.4版本开始引入的一个新的IOAPI,可以替代标准的lOAPI。NIO与原来的IO有同样的作用和目的,但是使用的方式完全......
  • 力扣507(java)-完美数(简单)
    题目:对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为「完美数」。给定一个 整数 n, 如果是完美数,返回true;否则返回false。 示例1:输......
  • Java并发编程异步操作Future和FutureTask
    学习来源:https://www.cnblogs.com/steakliu/p/16060651.htmlFuture和FutureTaskFuture是一个接口,FutureTask是一个类,实现RunnableFuture接口,RunnableFuture接口继承Fut......
  • 初识JavaScript
    目录JS的组成JS有三种书写位置:行内、内嵌、外部1.行内式JS2.内嵌式JS3.外部式JSJS注释JS输入输出语句变量1.声明变量2.赋值3.变量的初始化4.变量扩展5.变量命名规范数据......
  • 初识JavaScript
    目录JS的组成JS有三种书写位置:行内、内嵌、外部1.行内式JS2.内嵌式JS3.外部式JSJS注释JS输入输出语句变量1.声明变量2.赋值3.变量的初始化4.变量扩展5.变量命名规范数据......
  • Java封装正则表达式工具类
    Java与正则表达式Java中封装了关于正则表达式的内容,但是并不够彻底(抑或是我理解不够彻底),方便起见,在此编写一个小工具类:publicstaticArrayList<ArrayList<String>>......
  • Java - BIO 总结
    BIO介绍BIO编程方式通常是在JDK1.4版本之前常用的编程方式。编程实现过程为:首先在服务端启动一个ServerSocket来监听网络请求,客户端启动Socket发起网络请求,默认情......
  • Java我的高效编程之环境搭建
    前言:刚毕业,工作之余写博客有利于提高技术,更是能帮助人,接下来会认认真真写好每一篇博客。希望大家多多支持。废话不多说,马上开始。这是一篇环境搭建的博客。jdk+eclipse+s......