JAVA数组

复制代码


public
class Main { public static void main(String[] args) { // char a[][]={{"ff"},{"ee"}}; char c[][] = { { 'a', 'c' }, { 'c', 'd' } }; String[][] list = { { "1", "张三" }, { "2", "李四" }, { "3", "王五" } }; for (int i = 0; i < c.length; i++) { for (int j = 0; j < c[0].length; j++) { System.out.println(c[i][j]); } } System.out.println(".............."); for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[0].length; j++) { System.out.println(list[i][j]); } } } }
复制代码

 

复制代码
public class Main {
    public static void main(String[] args) {
        // char a[][]={{"ff"},{"ee"}};
        char c[][] = new char[3][4];
        String[] list = { "1230", "ewfr", "sddf" };
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                c[i][j] = list[i].charAt(j);
            }
        }
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.println(c[i][j]);
            }
        }

    }
}
复制代码

 Arrays.fill()  填充数组

public static void fill(int[] a, int fromIndex, int toIndex, int val)
Arrays类的fill() 方法是用来输入给定数组中元素值的。
1、两个参数
public static void fill(int[] a, int val):给定一个数组,一个val值
含义为为数组a进行赋值,使得其所有元素值都为val。

2、四个参数
public static void fill(int[] a, int fromIndex, int toIndex, int val):给定一个数组,起始位置fromIndex(包含),末尾位置toIndex(不包含),对范围内的元素进行赋值,示例如下:

int[] arr = new int[6];
Arrays.fill(arr, 60); 
//此时,arr的值为[60, 60, 60, 60, 60, 60]
Arrays.fill(arr, 3, 5, 100);
//此时,arr的值为[60, 60, 60,100, 100, 60]

 

binarySearch()方法

https://blog.csdn.net/qpzkobe/article/details/78897762

 binarySearch(Object[], Object key)

a: 要搜索的数组

key:要搜索的值

如果key在数组中,则返回搜索值的索引;否则返回-1或“-”(插入点)。插入点是索引键将要插入数组的那一点,即第一个大于该键的元素的索引。

技巧:

[1] 搜索值不是数组元素,且在数组范围内,从1开始计数,得“ - 插入点索引值”;

[2] 搜索值是数组元素,从0开始计数,得搜索值的索引值;

[3] 搜索值不是数组元素,且大于数组内元素,索引值为 – (length + 1);

[4] 搜索值不是数组元素,且小于数组内元素,索引值为 – 1。

复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        Map<String, Integer> map = new HashMap<>();

        int nums[] = { 1, 2, 4, 8 };
        int index1 = Arrays.binarySearch(nums, 2);
        int index2 = Arrays.binarySearch(nums, 0);
        int index3 = Arrays.binarySearch(nums, 9);
        int index4 = Arrays.binarySearch(nums, 6);
        System.out.println("2: " + index1 + " 0: " + index2 + " 9: " + index3 + " 6: " + index4);

    }
}
复制代码

 

System.arrayCopy

https://blog.csdn.net/qq_32405269/article/details/78374035

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
代码解释:
  Object src : 原数组
int srcPos : 从元数据的起始位置开始
  Object dest : 目标数组
  int destPos : 目标数组的开始起始位置
  int length : 要copy的数组的长度

复制代码
 int[] a = new int[10];
        a[0] = 0;
        a[1] = 1;
        a[2] = 2;
        a[3] = 3;
        System.arraycopy(a, 2, a, 3, 3);

        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
复制代码

0 1 2 2 3 0 0 0 0 0


Arrays.copyOfRange
 return Arrays.copyOfRange(a,0,cnt);//返回数组a【0,cnt)

Arrays.copyOf()

复制代码
 int[] arr1 = { 1, 2, 3, 4, 5 };
        int[] arr2 = Arrays.copyOf(arr1, 4);
        int[] arr3 = Arrays.copyOf(arr1, 10);
        for (int i = 0; i < arr2.length; i++)
            System.out.print(arr2[i] + " ");
        System.out.println();
        for (int i = 0; i < arr3.length; i++)
            System.out.print(arr3[i] + " ");
    }
复制代码

1 2 3 4
1 2 3 4 5 0 0 0 0 0

Arrays.asList  会有各种问题
https://blog.csdn.net/weixin_42585968/article/details/107465070
将数组转化为list
list.toArray
 List<Integer> list = new LinkedList<>();
        for (int i = 2; i <= 5; i++)
            list.add(i);
        Integer a[] = list.toArray(new Integer[list.size()]);
        for (int x : a)
            System.out.println(x);
复制代码
 List<int[]> list = new LinkedList<>();
        int aa[][] = { { 7, 0 }, { 4, 4 }, { 7, 1 }, { 5, 0 }, { 6, 1 }, { 5, 2 } };
        for (int p[] : aa) {
            list.add(p);
        }
        int bb[][] = list.toArray(new int[list.size()][]);
        for (int x[] : bb) {
            System.out.println(x[0] + " " + x[1]);
        }
复制代码

 

数组去重
复制代码
   static public String[] qu(String[] a) {
        int cnt = 0;
        Set set = new HashSet<>();
        for (String x : a) {
            set.add(x);
        }
        Object[] ob = set.toArray();
        for (Object x : ob) {
            a[cnt++] = (String) x;
        }
        return Arrays.copyOfRange(a, 0, cnt);
    }
复制代码

 

数组相等

Arrays.equals(a,b)

 
 返回空数组 new int[0]
  返回指定数组 new int[] { 2, 4 };
 
 
数组遍历
复制代码
 int a[] = { 1, 2, 5 };
        // for (int x : a) {
        // x *= 2;
        // }
        // for (int y : a) {
        // System.out.println(y);// 1 2 5
        // }

        for (int i = 0; i < a.length; i++) {
            a[i] *= 2;
        }
        for (int y : a) {
            System.out.println(y);// 2  4 10
        }
复制代码

 

posted on   cltt  阅读(29)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2020-12-23 matlab中的运算符
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示