JavaSE入门(三)

数组

一维数组

定义:数据类型[] 数组名 = new 数据类型[长度]

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[10];
        for(int i = 0;i< arr.length;i++){
            arr[i] = i;
        }
        System.out.println(Arrays.toString(arr));
    }
}

程序解析:首先定义一个长度为10,数据类型为int的数组,利用for循环,将数组的每个内存位置放置对应的元素,最后使用java.util.Arrays包下的toString方法将数组转换为字符串

注意点:
1、数组的访问下标是从0开始,并非从1开始
2、arr.length表示arr这个数组的长度,这里就是10
3、Arrays.toString()方法即把数组以字符串方式打印出来,使用该方法需导入java.util.Arrays包

结果:
在这里插入图片描述

二维数组

定义:数据类型[][] 数组名 = new 数据类型[长度1][长度2]

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] arr = new int[4][4];
        for(int i = 0;i< arr.length;i++){
            for (int j = 0; j < arr[i].length; j++) {
                arr[i][j] = j;
            }
        }
        System.out.println(Arrays.deepToString(arr));
    }
}

程序解析:首先定义一个4x4的二维数组,然后使用for循环嵌套方式给数组赋值,最后使用Arrays包下的deepToString方法将二维数组转换为字符串
注意点:
1、二维数组可以看成一个矩阵,长度1是行的数量,长度2是列的数量
2、Arrays.deepToString可将二维数组转换为字符串,若使用Arrays.toString方法转换二维数组,最后打印出来的是数组的地址
小例题:
1、力扣第1题

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] arr = new int[2];
        int a = 0;
        for(int i = 0;i<nums.length;i++){
            for(int j = i;j<nums.length;j++){
                if(nums[i]+nums[j] == target){
                    if(i != j){
                        arr[a] = i;
                        a++;
                        arr[a] = j;
                        a++;
                    }
                }
            }
        }
        return arr;
    }
}

本题可以用双指针进行解决,因为题目最后要求返回的是两个数,并且是以数组形式返回,所以应该先定义一个长度为2,类型为int的数组用于返回,然后使用两层循环,这里的i,j就类似于指针,i从0开始,j从i开始,只要i和j位置上的数相加等于目标数,并且i和j不一样,就将这两个数的下标放到返回数组当中,最后返回出去

列表

java.util.List< E >

ps:这里的E表示泛型,泛型就是不确定的数据类型,可以是八大基本类型,也可以是对象
List不是类,而是一个接口
方法:

method name					  param					returnType
	add()					  E e				 	 boolean
	clear()					  					 	 void
	contains()				  Object o			 	 boolean
	equals()				  Object o			 	 boolean
	isEmpty()				  						 boolean
	remove()				  int index				 E
	set()					  int index,E element	 E
	size()					  						 int

方法解析:
add方法,传入一个E类型的参数,若列表中存在该元素,则返回false,否则返回true,并存入列表当中
clear方法,无传入参数,无返回值,被调用后会清楚列表中所有的元素
contains方法,传入一个object类型元素,如果列表当中包含该元素则返回true,否则返回false
equals方法,传入一个object类型元素,如果列表和对象相同则返回true,否则返回false
isEmpty方法,无传入参数,被调用后会判断该列表中是否含有元素,若有元素则返回true,否则返回false
remove方法,传入一个index,返回一个E类型数据,但一般这个数据是删除index位置元素后的列表
set方法,传入一个index,一个E类型的element,调用后会改变原本index的元素值为element,并将改变后的列表返回
size方法,调用后可以获得该列表的元素个数

java.util.ArrayList< E >

可实现接口:Serializable,Cloneable,Iterable,Collection,List,RandomAccess
方法: 因为ArrayList可实现List接口,所以大部分的方法和List相同,这里就不再赘述
构造方法:

ArrayList()			
构造一个初始容量为10的空列表

ArrayList(Collection<? extends E> c)
构造一个包含指定集合的元素的列表,它们在集合的迭代器返回的顺序中返回

ArrayList(int initialCapacity)
用指定的初始容量构造一个空列表
列表常规用法
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(i);
        }
        System.out.println(list.toString());
    }
}

结果:
在这里插入图片描述
这个是最基本的关于list的用法,首先构建一个存放Integer数据类型的列表,然后通过for循环将0-9全部加入至集合当中,最后用打印语句和toString方法将列表以字符串形式输出

哈希表(字典)

java.util.HashMap<K,V>

构造方法:

HashMap()
构造一个默认的初始容量的空 HashMap16)和默认的加载因子(0.75HashMap(int initialCapacity)
构建了一个具有指定的初始容量和加载因子空 HashMap0.75HashMap(int initialCapacity,float loadFactor)
构造一个空 HashMap具有指定的初始容量和加载因子

HashMap(Map<? extends K,? extends V> m)
构建了一种新的 HashMap与指定的 Map相同的映射

主要方法:

  method name					  param					 returnType
	clear()													void
	containsKey()				Object key				   boolean
	containsValue()				Object value			   boolean
	Set<Map.Entry<K,V>>									   entrySet()
	get()						Object key				      V
	isEmpty()											   boolean
	put()						K key,V value			   	  V
	remove()					Object key				      V
	size()												     int

方法解析:
clear,无传入参数,被调用后清除该哈希表中所有的映射

containsKey,传入一个Object类型的key,若哈希表当中存在该key,就会返回true,否则返回false

containsValue,传入一个Object类型的value,若哈希表当中存在该value,就会返回true,否则返回false

Set<Map.Entry<K,V>>,该方法会将HashMap类型数据转化为entrySet类型,entrySet类型方便操作原HashMap中的key和value值

get,传入一个Object类型的key,它会根据key的值匹配对应的value,并将该value值返回

isEmpty,无传入参数,被调用后会判断当前哈希表是否有映射,若有就返回true,否则返回false

put,传入一个key和一个value,该key和value的类型需与泛型中的类型一致

remove,传入一个Object类型的key,它会根据key匹配对应的映射,并删除该映射

size,无传入参数,被调用后返回哈希表的映射数量

哈希表常规用法
import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(1,2);
        map.put(2,3);
        System.out.println(map.toString());
    }
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖墨客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值