Javajava中二维数组组问题。运行这个后,ints数组变成什么?可以吧每部写出来吗?

Java如何读取BMP的每个像素点,输出到一个二维数组_百度知道
Java如何读取BMP的每个像素点,输出到一个二维数组
没有任何头绪,只知道是ImageIO类,具体怎么操作不清楚。不需要主类,输出的结果就是RGB三色值的平均进入一个二维数组,保存。
谢谢你!我是想读取在指定路径下的图片,鼠标选取其中一部分,然后把这部分图片的RGB和值的平均输入一个int类型的数组。我希望得到帮助。谢谢!完整的程序是:运行一个很小的窗体,按按钮或者按下回车之后就截取当前屏幕。(截屏部分已经查到API写好。)然后鼠标在屏幕上的拉选一个区域。就是点击左键但不松手,选定之后松开左键。把这一部分的RGB的平均值得出后存放在数组里。for(int i=i&i++){ for(int j=j&j++){ 也许应该是这两个嵌套里面的改成鼠标的屏幕坐标值?但是鼠标事件和参数传递没有把握做好。而且整合窗体做不好。您能否写一个程序?谢谢您!我是新手,但是会尽快消化,消化不了了再来问。
提问者采纳
//我在程序中打印出了每一个坐标的RGB值,你自己整理整理,求个平均值,//放到你的那个二维数组里。//自己用画图工具做一个小图片,注意图片的名字和程序中一致哦~import java.awt.image.BufferedI import javax.imageio.ImageIO; import java.io.*;public class Test{ public static void main(String args[]) { int[] rgb = new int[3];File file = new File(&a.bmp&); BufferedImage bi= try{ bi = ImageIO.read(file); }catch(Exception e){ e.printStackTrace(); }int width=bi.getWidth(); int height=bi.getHeight(); int minx=bi.getMinX(); int miny=bi.getMinY(); System.out.println(&width=&+width+&,height=&+height+&.&); System.out.println(&minx=&+minx+&,miniy=&+miny+&.&);for(int i=i&i++){ for(int j=j&j++){ //System.out.print(bi.getRGB(jw, ih)); int pixel=bi.getRGB(i, j); rgb[0] = (pixel & 0xff0000 ) && 16 ; rgb[1] = (pixel & 0xff00 ) && 8 ; rgb[2] = (pixel & 0xff ); System.out.println(&i=&+i+&,j=&+j+&:(&+rgb[0]+&,&+rgb[1]+&,&+rgb[2]+&)&);} }}}
其他类似问题
为您推荐:
其他2条回答
楼上的基本正确,
int[] rgb = new int[3];最好用二维数组
int[] rgb = new int[3][width*height]
rgb[0] = (pixel & 0xff0000 ) && 16 ;
rgb[1] = (pixel & 0xff00 ) && 8 ;
rgb[2] = (pixel & 0xff );
会把数组内的值覆盖,获得就是最后像素点的RGB值;
我写了一个希望可以帮助到你
package imageReadAndW
import java.awt.image.BufferedI
import java.io.FileInputS
import java.io.FileNotFoundE
import java.io.FileOutputS
import java.io.IOE
import com.sun.image.codec.jpeg.JPEGC
import com.sun.image.codec.jpeg.JPEGImageD
import com.sun.image.codec.jpeg.JPEGImageE
主要是以下两点,按照思路你尝试一下1,利用ImageIO.read 得到 BufferedImage2,BufferedImage.getRGB()得到像素数组然后后续的就是你自己处理了
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Java中二维数组排序的问题_百度知道
Java中二维数组排序的问题
int [][]ss=new int[][]{{23,4,56},{3,12,78,9},{1,21}};以上是定义的一个Java二维数组,现在按照从小到大的顺序排列,排序完应该变成这样:{{1,3,4},{9,12,21,23},{56,78}}这段代码怎么写另外Java中的Arrays类中的sort何binarySearch方法是否适用于二维数组的数组名?
//将二维数组做参数调用sort即可
public static int[][] sort(int[][] array){
for(int[] a:array){
for(i=1;i&i++){
rearInsert(a,i);
for(i=0;i&array.length-1;){
for(j=array.length-1;j&i;j--){
if(array[i][array[i].length-1]&array[j][0]){
temp=array[i][array[i].length-1];
array[i][array[i].length-1]=array[j][0];
array[j][0]=
frontInsert(array[j],0);
rearInsert(array[i],array[i].length-1);
private static void rearInsert(int[] array,int index){
int temp=array[index],i,j;
for(i=0;i&i++){
if(array[i]&=temp){
for(j=j&i;j--){
array[j]=array[j-1];
private static void frontInsert(int[] array,int index){
int temp=array[index],i,j;
for(i=array.length-1;i&i--){
if(array[i]&temp){
for(j=j&i;j++){
array[j]=array[j+1];
其他类似问题
为您推荐:
其他4条回答
不适应的。。只适应一维的要一维一维的转。。 public class Test { public static void main(String[] args) {
int [][]ss=new int[][]{{23,4,56},{3,12,78,9},{1,21}};
List&Integer& list = new ArrayList&Integer&();
for(int[] i : ss){
for(int j : i){
list.add(j);
Collections.sort(list);
int count =0;
for(int i=0;i&ss.i++){
for(int j=0;j&ss[i].j++){
ss[i][j] = list.get(count);
System.out.println(ss); }}
//that's it ^_^
import java.util.A
public class SimInts {
public SimInts() {
//a sort method for int[][]
public static int [][] trans(int[][] src) {
int len = src.
int[] lens = new int[len];
for (int i = 0; i & i++) {
lens[i] = src[i].
int sum = 0;
for (int i : lens) {
int[] dist = new int[sum];
for (int j = 0; j & j++) {
for (int k = 0; k & lens[j]; k++) {
int index = getIndex(j, k, lens);
dist[index] = src[j][k];
Arrays.sort(dist);
for (int j = 0; j & j++) {
for (int k = 0; k & lens[j]; k++) {
int index = getIn...
java数组排序日 星期六 下午 12:55import java.util.R
* 排序测试类
* 排序算法的分类如下:
* 1.插入排序(直接插入排序、折半插入排序、希尔排序);
* 2.交换排序(冒泡泡排序、快速排序);
* 3.选择排序(直接选择排序、堆排序);
* 4.归并排序;
* 5.基数排序。
* 关于排序方法的选择:
* (1)若n较小(如n≤50),可采用直接插入或直接选择排序。
当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
* (2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;
* (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
Java中的Arrays类中的sort何binarySearch方法都是针对一维数组而言的
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java二维数组的一个问题。_百度知道
提问者采纳
os二维数组这样初始化:Object[][]os=new Object[data.length][data[0].length];
为什么你们都是错的啊。结果不是Object[][] os = new Object[4][1]吗,它不就是个4行1列的二维数组吗?
是4行3列共12个元素,你可以用下面的程序验证一下。public class RR { public static void main(String[] args) { Object[][]data={{&Apples&,new Integer(5),&5.00&},
{&Oranges&,new Integer(3),&6.00&},
{&Pears&,new Integer(2),&4.00&},
{&Grapes&,new Integer(3),&2.00&}};
Object[][]os=new Object[data.length][data[0].length];
System.out.println(data.length);
System.out.println(data[0].length);
for(int i=0;i&data.i++){
for(int j=0;j&data[0].j++){
System.out.print(data[i][j]+& &);
System.out.println();
} }}运行结果:43Apples 5 5.00 Oranges 3 6.00 Pears 2 4.00 Grapes 3 2.00
提问者评价
这个答案很满意哈。谢谢了,给你5分吧。
其他类似问题
为您推荐:
二维数组的相关知识
其他5条回答
Object[][] data不就是这种二维数组吗?
Object[][] os = new Object[3][3];
Object[][] os = new Object[4][3];
先空着呗,等初始化的时候在赋值啊
Object[][] os = new Object[4][3]
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Java二维数组元素相加问题_百度知道
Java二维数组元素相加问题
package retestC8;public class Summation { public static void main(String[] args) { String str[][]=new String[][]{{&1&,&2&},{&3&,&4&},{&5&,&6&},{&7&,&8&}};//怎样将这个二维的字符串型数组里面的数值全部加起来?
int sum=0;
for(int i=0;i&str.i++){
for(int j=0;j&str.j++){
int myint=Integer.parseInt(str[i][j]);
System.out.println(sum); }} //就这样运行会报错Exception in thread &main& java.lang.ArrayIndexOutOfBoundsException: 2 at retestC8.Summation.main(Summation.java:10)
提问者采纳
&package&retestC8;public&class&Summation&{&&public&static&void&main(String[]&args)&{&&String&str[][]=new&String[][]{{&1&,&2&},{&3&,&4&},{&5&,&6&},{&7&,&8&}};&&//怎样将这个二维的字符串型数组里面的数值全部加起来?&&int&sum=0;&&&&for(int&i=0;i&str.i++){&&&&&for(int&j=0;j&2;j++){&&&&&&int&myint=Integer.parseInt(str[i][j]);&&&&&&&&sum=sum+&&&&}&&&&}&&&&System.out.println(sum);&&}}修改之后的代码&&&内层for循环&循环的次数应该是一个下标对应二位数组的值的元素个数。。&&&&例如:String&str[][]=new&String[][]{{&1&,&2&},{&3&,&4&},{&5&,&6&}&外层循环&i=0&的时候&&值是&{&1&,&2&}&内存循环就只能是0跟1才能取得到值&&如果值是{&1&,&2&,&3&}&&那么内存循环就只能是0&跟1跟2才能取得到值&&不知道我说的你能理解不.
提问者评价
理解的,谢谢您:)也非常感谢其他回答问题的网友:)
其他类似问题
为您推荐:
其他3条回答
内层循环遍历的数组是str[i],所以循环次数应该是str[i].lengthException in thread &main& java.lang.ArrayIndexOutOfBoundsException:这个错误是数组下标越界把for(int j=0;j&str.j++)改成for(int j=0;j&str[i].j++)就好了,
数组下标越界for(int i=0;i&str.i++){
for(int j=0;j&str.j++){第二个str.length应该是str[0].length
for(int i=0;i&str.i++){
for(int j=0;j&str[i].j++){
int myint=Integer.parseInt(str[i][j]);
}}java二维数组中,每一行就是一个数组。str.length取的是行数,str[i].length得到 的是第[i]行的元素个数
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁java 二维数组的问题_百度知道
java 二维数组的问题
String[][] data = new String[3][5];String[] a = new String [5];data[1] =
结果是data[0][]和data[1][]都变成了a , 我只要data[1][0]-data[1][4]变成a[0]-a[4] , 应该怎么写,谢谢.
这么说吧String[][] data = new String[2][3];String[] a ={1,2,3};String[] b ={a,b,c};然后我这样写data[0] =data[1] =原来我以为结果是1,2,3,a,b,c实际结果是a,b,c,a,b,c所以我想知道这样写有什么问题,我不想一个一个的赋值,想一串一串的赋值
提问者采纳
改了下~~~那就应该是你写的那样~没错class StringTest{ public static void main(String[] args){
String[][] data = {
{&a&,&a&,&a&,&a&,&a&},
{&b&,&b&,&b&,&b&,&b&},
{&c&,&c&,&c&,&c&,&c&}
String[] a ={
&d&,&d&,&d&,&d&,&d&
for(int i = 0 ; i & data. i++){
for(int j =0; j & data[i]. j++)
System.out.print(data[i][j]);
System.out.println();
}}道理都是一样,楼主再看看~~~class StringTest{ public static void main(String[] args){
String[][] data = new String[2][3];
String[] a ={&1&,&2&,&3&};
String[] b ={&a&,&b&,&c&};
for(int i = 0 ; i & data. i++){
for(int j =0; j & data[i]. j++)
System.out.print(data[i][j]);
提问者评价
问题找到了,String[] a 是return得到的,所以就不对了
其他类似问题
为您推荐:
其他1条回答
我也觉得你的用法data[1]=a;是对的,如果是你说的那样,我看你就分开吧,用个for让它们一个个赋值吧。
二维数组的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 java定义二维数组 的文章

 

随机推荐