java创建自定义类的数组

今天在学图论的最小生成树,开始一直在想是用邻接矩阵还是关联矩阵来表示图,但是发现这样都会有好多空间浪费。于是我就自定义一个边的类,里面包含了权值,关联的端点1,端点2,和图的表示字母。发现我想创建11条边,Bian[] = new Bian[11]时; 然后调用Bian[0].v一直报空指针异常,还百度了,发现有些小伙伴和我遇到一样的问题。于是仔细想了想,发现在java中,数组存放的是这个类型的对象,万物皆对象。我定义Bian[] 时里面应该要存放Bian[]类型先。例如以下程序

import java.util.Scanner;

class Bian{
    int v; //边的权值
    int guanlian[] = new int[2];//每条边都是关联2个点
    char xuhao;
}

public class Test {
    public static void main(String[] args) {
        System.out.println("请输入这个图有几条边:");  //用关联矩阵表示图
        Scanner scn = new Scanner(System.in);
        int n = scn.nextInt();
        Bian bian[] = new Bian[n];  //初始化了这么多条边,则开始输入
        for(int i=0;i<n;i++){
            bian[i] = new Bian();   //要先创建这个对象放在这个数组中才能使用
            bian[i].v = scn.nextInt();
            bian[i].guanlian[0] = scn.nextInt();
            bian[i].guanlian[1] = scn.nextInt();
            bian[i].xuhao = (char) (‘a‘+i);
        }
    }
}

以后大家要记住咯

原文地址:https://www.cnblogs.com/zzlback/p/8470495.html

时间: 2024-10-31 15:25:19

java创建自定义类的数组的相关文章

java 导入自定义类

eclipse导入很容易,昨天上课学了一下用记事本写java,导入自定义类,这就麻烦了. 代码贴一下,方便操作: package tom.jiafei; public class SquareEquation { double a,b,c; double root1,root2; boolean boo; public SquareEquation (double a,double b,double c) { this.a = a; this.b = b; this.c = c; if(a!=0

Java创建一个类的实例的方法

创建一个类的实例的方法有以下四种 一.通过new 来实现,也是最常用的 二.通过反射机制来实现 Class c = Class.forName("路径"): (1)java.lang.newInstance User use = (User)c.java.newInstance(); (2)java.lang.reflect.Constructor类的newInstance方法 Constructor con = c.getConstructor(String.class); User

Object-c创建自定义类

OC类 1 需要接口与实现定义,虽然并非完全必要,但通常会将接口与实现放在单独的文件中. 2 接口与实现类放在单独的文件中. 3 接口与类本身同名,但文件扩展名是.h.实现文件与类同名,但文件扩展名是.m 4 要想使用自定义类,需要将类的头文件导入到使用类的代码文件中.接下来就可以通过类,实例化对象并使用类中封装功能了

java使用Arrays类输出数组内容

import java.util.*; public class ArrayTest { public static void main(String[] args) { int[] arr={1,3,5}; System.out.println(arr); System.out.println(arr.toString()); System.out.println(Arrays.toString(arr)); } } Arrays类一定要记得加“s”

ASP.Net 创建自定义类特效进行权限验证

//解析特性 public class AdmCheckLevel : Controller { protected override void OnActionExecuting(ActionExecutingContext filterContext) { Type type = this.GetType(); var attribute = type.GetCustomAttributes(typeof(CheckLevelAttribute), false); for (int i =

Java用自定义类实现枚举效果

public class Season { private Season() {}//使此类不能被new public static final Season SPRING = new Season(); public static final Season SUMMER = new Season(); public static final Season FALL = new Season(); public static final Season WINTER = new Season();

js自定义类与对象

js中创建自定义类与创建对象:js创建类与AS3,java都有很大的不同,,,下面来看看他的庐山真面目..由于js也是一个面向对象的编程语言所以也存在像其他语言那样的创建自定义的类,和通过类来创建对象.js的类是有一下三部门组成1.构造函数2.属性3.方法自定义一个类: function MyClass(id,age,name) { this.id = id; this.age = age; this.name = name; } 从这个类的定义形式可以看出,js定义类的形式和其他语言有很大的不

java.util.Arrays类

java.util.Arrays类能方便的操作数组,它所有的方法都是静态的. 1.filll方法 :给数组中的某段元素附上相同值. 2.sort方法:对数组中某段元素排序. 3.equals方法:比较两个数组,判断的是数组中元素值是否相等. 4.binarySearch方法:对排过序的数组进行二分法查找. 不错的例子: /*-------文件名: UsingArrys.java-------*/ package com.sjx.test; import java.util.Arrays; /**

silverlight根据json字符串动态创建实体类

1.接收json字符串: //用JsonValue转换json字符串是为了之后获得json字符串的每行数据和每一列的列名 JsonValue jv = JsonValue.Parse(json);     //JsonValue引用自System.Json 2.创建两个类:一个为创建实体类方法,一个为调用实体类方法,实现操作并返回数据: //创建实体方法类 public class DynamicTypeBuilder { TypeBuilder tb; /// <summary> /// 构