java string fill_Java使用fill()数组填充的实现

Arrays 类提供了一个 fill() 方法,可以在指定位置进行数值填充。fill() 方法虽然可以填充数组,但是它的功能有限制,只能使用同一个数值进行填充。语法如下:

声明举例:

public static void fill(int[] a, form, to, int var)

参数:

a--数组

form--替换开始位置(包括)

to--替换结束位置(不包括)

var--要替换的值

其中,array 表示数组,value 表示填充的值。

例 1

声明一个 int 类型的 number 数组,然后通过 for 语句进行遍历,在该语句中调用 Arrays 类的 fill() 方法来填充数组,并输出数组中元素的值。代码如下:

public static void main(String[] args) {

int[] number = new int[5];

System.out.println("number —共有 " + number.length + " 个元素,它们分别是:");

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

Arrays.fill(number, i);

System.out.println("number[" + i + "]=" + i);

}

}

执行上述代码,输出结果如下所示。

number 一共有 5 个元素,它们分别是:

number[0]=0

number[1]=1

number[2]=2

number[3]=3

number[4]=4

注意:在向数组中填充数组元素时要注意,虽然定义的数组长度为 6,但是数组的下标是从 0 开始的,因此数组的最大下标值应该是 5,此时如果为下标为 6 的数组元素赋值,则会出现数组下标越界异常。

例2

public class Test {

public static void main(String[] args) {

int[] a = new int[]{1,2,3,4,5,6};

System.out.println(Arrays.toString(a)); //{1,2,3,4,5,6}

Arrays.fill(a, 0);

System.out.println(Arrays.toString(a)); //{0,0,0,0,0,0}

int[] b = new int[]{1,2,3,4,5,6};

Arrays.fill(b, 2, 4, 0);

System.out.println(Arrays.toString(b)); //{1,2,0,0,5,6}

Boolean[] c = {true,false};

System.out.println(Arrays.toString(c)); //{true,false}

Arrays.fill(c, false);

System.out.println(Arrays.toString(c)); //{false,false}

Arrays.fill(c, 0, 1, true);

System.out.println(Arrays.toString(c)); //{true,false}

String[] d = {"a","b","c","d","e","f"};

System.out.println(Arrays.toString(d)); //{a,b,c,d,e,f}

Arrays.fill(d, 1, 2, "HelloWorld");

System.out.println(Arrays.toString(d)); //{a,HelloWorld,c,d,e,f}

}

}

到此这篇关于Java使用fill()数组填充的实现的文章就介绍到这了,更多相关Java fill()数组填充内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
扫描线种子填充算法是一种常见的填充算法,可以用来填充不规则图形。Java语言实现扫描线种子填充算法的步骤如下: 1. 编写一个Point类,用来表示点的坐标。 ```java class Point { int x; int y; public Point(int x, int y) { this.x = x; this.y = y; } } ``` 2. 定义一个函数scanlineFill,该函数接受一个不规则图形的边界点集合和一个填充颜色作为参数,实现扫描线种子填充算法。 ```java public void scanlineFill(List<Point> boundary, Color fill) { // 找到图形的最小x坐标和最大x坐标 int minX = Integer.MAX_VALUE; int maxX = Integer.MIN_VALUE; for (Point p : boundary) { if (p.x < minX) { minX = p.x; } if (p.x > maxX) { maxX = p.x; } } // 找到每条扫描线与图形的交点 List<Point> intersections = new ArrayList<>(); for (int y = minY; y <= maxY; y++) { for (int x = minX; x <= maxX; x++) { Point p = new Point(x, y); if (isBoundaryPoint(p, boundary)) { intersections.add(p); } } } // 对每个交点进行填充 for (Point p : intersections) { fillPixel(p.x, p.y, fill); } } // 判断一个点是否为边界点 private boolean isBoundaryPoint(Point p, List<Point> boundary) { // 判断点是否在边界上 if (boundary.contains(p)) { return true; } // 判断点是否在边界内部 int count = 0; Point prev = boundary.get(boundary.size() - 1); for (Point curr : boundary) { if (((curr.y <= p.y) && (prev.y > p.y)) || ((curr.y > p.y) && (prev.y <= p.y))) { // 计算交点的x坐标 double x = (double)(p.y - prev.y) * (double)(curr.x - prev.x) / (double)(curr.y - prev.y) + prev.x; if (x < p.x) { count++; } } prev = curr; } return (count % 2 == 1); } // 填充一个像素点 private void fillPixel(int x, int y, Color fill) { // 在画布上填充指定颜色 // ... } ``` 3. 在主函数中调用scanlineFill函数,传入不规则图形的边界点集合和填充颜色。 ```java public static void main(String[] args) { List<Point> boundary = new ArrayList<>(); // 添加不规则图形的边界点 // ... Color fill = Color.RED; scanlineFill(boundary, fill); } ``` 以上是Java实现扫描线种子填充算法画不规则图形的基本步骤,具体实现还需要根据自己的需求进行优化和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值