个人笔记之数组

个人笔记之数组、集合

一.什么是数组(Array)

定义:数组就是一系列相同类型数据的有序集合。

数组通常由若干同类型的数据通过先后次序排列而成,每一个数据称为元素,每一个元素都拥有一个唯一的下标,该下标从零开始。

特点:

1.有限性。数组的长度是有限的。

2.同类型。数组中的元素必须是同种类型,不允许类型混杂。

3.数组是引用数据类型。数组也可以看成对象,每个元素相当于该对象的成员变量。

二.数组的创建

数组的声明:

类型[] 数组名 = new 类型[长度];

例:int[] arr = new int[10];

解释:创建一个int类型的数组,然后指向一个存放该数组空间,设置数组长度为10(也就是说该数组中存放着10个元素)。

String[] arr = new String[10];

解释:举一反三,这里是创建一个String类型的数组,然后指向一个存放该数组空间,设置数组长度为10。

byte[] arr = new byte[10];

三.数组的基本操作

1. for 循环遍历数组

int[] arr = new int[10];
for(int i = 0 ; i<arr.length ; i++){
System.out.println(arr[i]);
}

//此时没有对数组中的元素赋值,默认所有元素的值都为0,所以此次遍历结果为输出十个零。

利用for循环,遍历数组中的每一个元素,并且打印出来来。

这样我们可以利用for循环对数组中的数据进行一些操作,比如赋值排序都可以对每一个元素操作。

2.增强for循环

int[] arr = new int[10];
for(int a : arr ){
System.out.println(a);
}

这样能和上面的for循环达成一样的结果。

四.常见数组(集合)浅谈

//List,Map,Set均继承自Collection
public class PracticeList {
    public static void main(String[] args) {
        //创建一个ArrayList列表
        //ArrayList列表算是比较常用的动态数组
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        System.out.println(list);
        System.out.println("=============");
		//创建一个Map<K,V>列表,存入数据并打印
        //Map通过键值对存取数据,通过键寻找对应的值很容易找到,节省时间,也有利于修改对应位置的数值
        Map<Integer, Integer> map = new HashMap<>();
        map.put(1,1);
        map.put(2,2);
        map.put(3,3);
        System.out.println(map);
        System.out.println("==============");
		//Set无序数组,HashSet号称查找最快的数组,通过HashCode实现的
        //Set是一种不允许重复元素出现的无序集合,但虽说是无序但还是根据自己的规则内部排序的
        Set<Integer> set = new HashSet<>();
        set.add(1);
        set.add(2);
        set.add(3);
        System.out.println(set);
    }
}

最常见的就是ArrayList和HashMap,所以其他见得相对比较少。

在这里插入图片描述

迭代问题:

关于三种集合的遍历:

System.out.println("@@@@@@@@@@@@@@@迭代@@@@@@@@@@@@@@@@@");
System.out.println("list遍历:---------------");
//增强for循环遍历
for(Integer temp : list){
    System.out.print(" <"+temp+"> ");
}
//迭代器遍历
System.out.println();
//来个迭代器
Iterator<Integer> it = list.iterator();
//循环输出,若有下一位存在就执行
while(it.hasNext()){
    //输出这一位的内容
    System.out.print(" <"+it.next()+"> ");
}
System.out.println();
System.out.println("Map遍历:---------------");
//先将MAP转为Set数组再遍历
Set<Map.Entry<Integer, Integer>> setMap = map.entrySet();
//增强for循环遍历
for(Map.Entry<Integer, Integer> temp : setMap){
    System.out.print(" <"+temp.getKey()+" + "+temp.getValue()+"> ");
}
//迭代器遍历
System.out.println();
Iterator<Map.Entry<Integer, Integer>> itMap = setMap.iterator();
while(itMap.hasNext()){
    //此处接收一下,不然没法打印出Key和Value
    Map.Entry<Integer, Integer> temp1=itMap.next();
    System.out.print(" <"+temp1.getKey()+" + "+temp1.getValue()+"> ");
}
System.out.println();
System.out.println("Set遍历:---------------");
System.out.println("同Map");

在这里插入图片描述

练习:

/*

  • 定义一个数组,存储一个班学生的成绩
  • 人数由手动输入,成绩范围[0,150]
  • */
package com.cl.practice;
import java.util.*;
/*
* 定义一个数组,存储一个班学生的成绩
* 人数由手动输入,成绩范围[0,150]
* */

public class Practice001 {
    public static void main(String[] args) {
        /* 定义一个输入方法,用接收输入的班级人数 */
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入班级人数:");
        int len = scan.nextInt();
//      接收返回的数组
        int[] arr = getArray(len);
//     int arr1[] = getArray(len);   用的少    //
        System.out.println("同学们的分数分别是:" + Arrays.toString(arr));
    }

//      写一个定义随机数组的方法getArray()
//      带参,返回数组
    public static int[] getArray(int len){
//      创建一个随机数对象
        Random rand = new Random();
//      初始化一个长度为len的数组
        int[] arr = new int[len];
        for (int i = 0; i < arr.length; i++) {
//          用数组中的数据接收随机数,随机数范围为[0,150]
            arr[i]=rand.nextInt(151);
        }
//      返回arr
        return arr;
    }


}

for (int i = 0; i < arr.length; i++) {

// 用数组中的数据接收随机数,随机数范围为[0,150]
arr[i]=rand.nextInt(151);
}
// 返回arr
return arr;
}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值