「java创建pair」JAVA创建一个包的语句

博主:adminadmin 2023-01-04 00:03:07 498

本篇文章给大家谈谈java创建pair,以及JAVA创建一个包的语句对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java程序中pair类的创建问题

这个还缺少一个类, 这段例子是JAVA核心技术哪本书里的,前几页还有一个类, class Pair。把这个类加上就可以运行了。

android studio java中的 pair怎么用

android studio java中的 pair怎么用

如果不添加配置直接在Android的项目中创建一个带有main函数的类是无法当做Java Application运行的。

当在写Android的应用的时候需要测试一下和Android本身无关的代码,只是纯Java代码而已,完全用不着开启Android模拟器,如果想直接运行Java代码,是会报错。

后来成这么个错:

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/ref/FinalReference

下面给出解决方案,其实很简单:总结一句话就是,导入jre!

Eclipse中,你要运行的类上右键,Run as —-Runconfigurations…

Java怎样创建两个KEY的MAP

就像在XY坐标系中,一个X刻度、一个Y刻度,会对应图上的一个点,即pair(x, y) – point,那么就有创建一个点,或者根据(x, y)来寻求一个点的需求,如果用Python的语法表达,是这个样子:

Python中表达pair KEY映射MAP的方法

Python

dict((x, y) : point)

dict ( ( x , y ) : point )

然而在JAVA中却变得不容易,骨钩了一下,有这么一些方法:

使用嵌套MAP

嵌套MAP实现双KEY MAP

Java

MapInteger, MapInteger, V map = //...

// ...

map.get(2).get(5);

Map Integer , Map Integer , V map = //...

// ...

map . get ( 2 ) . get ( 5 ) ;

这种方法将水平的KEY切换成了垂直KEY,我们要找寻XY坐标系中(x, y)对应的点,其实可以先找x点的那条垂直线,然后找出这条垂直线上y高度的那个点。

但是要取得这个双KEY的VALUE,得有2次GET,实例代码没有做第一次GET的NULL判断,有隐患!并且感觉不是很直观。

写一个pair key的包装类

pair key的包装类

Java

public class Key {

private final int x;

private final int y;

public Key(int x, int y) {

this.x = x;

this.y = y;

}

@Override

public boolean equals(Object o) {

if (this == o) return true;

if (!(o instanceof Key)) return false;

Key key = (Key) o;

return x == key.x y == key.y;

}

@Override

public int hashCode() {

int result = x;

result = 31 * result + y;

return result;

}

}

public class Key {

private final int x ;

private final int y ;

public Key ( int x , int y ) {

this . x = x ;

this . y = y ;

}

@Override

public boolean equals ( Object o ) {

if ( this == o ) return true ;

if ( ! ( o instanceof Key ) ) return false ;

Key key = ( Key ) o ;

return x == key . x y == key . y ;

}

@Override

public int hashCode ( ) {

int result = x ;

result = 31 * result + y ;

return result ;

}

}

以这种方法提前包装好一个类,类中有x和y两个属性,同时提供equals方法用于“点”的比较,提供hashCode用于使用在计算对象在散列表中的位置。

为什么要覆盖hashCode方法?请 参见链接

写完这个pair类之后,就好用了:

实现了pair类之后的双key的MAP写法

Java

MapKey, V map = //...

map.get(new Key(2, 5));

Map Key , V map = //...

map . get ( new Key ( 2 , 5 ) ) ;

这种方法以更多的代码为代价来实现pair key的map,pair class的编写中,不能忘记覆盖equals和hashcode方法,增加了代码量,感觉不是很好用。

GOOGLE的HashBasedTable类库

这种方法感觉才是最直观,最好用的

使用GOOGLE的HashBasedTable实现PAIR KEY

Java

import com.google.common.collect.HashBasedTable;

import com.google.common.collect.Table;

// 创建

TableLong, Long, Point plane = HashBasedTable.create();

// 新增

plane.put(1L, 2L, pointA);

plane.put(1L, 3L, pointB);

plane.put(1L, 4L, pointC);

// 获取

Point pointA = plane.get(1L, 2L);

Point pointB = plane.get(1L, 2L);

import com . google . common . collect . HashBasedTable ;

import com . google . common . collect . Table ;

// 创建

Table Long , Long , Point plane = HashBasedTable . create ( ) ;

// 新增

plane . put ( 1L , 2L , pointA ) ;

plane . put ( 1L , 3L , pointB ) ;

plane . put ( 1L , 4L , pointC ) ;

// 获取

Point pointA = plane . get ( 1L , 2L ) ;

Point pointB = plane . get ( 1L , 2L ) ;

惊叹,好用。在JAVA语言里,写成这样的代码,可称之为艺术。

无限维度的KEY

有两种方法可以实现无线维度的KEY,第一种和本文的第二种方法一样,先写一个CLASS,里面有无限个属性,然后作为MAP的KEY。

第二种,如果类型一样,可以这样子实现:

使用List作为无限MAP的KEY

Java

MapListInteger, V map = //...

Map List Integer , V map = //...

但是这种方法易出错、不易读,并且性能很低。

java中 pair 什么意思

表示泛型。

比如说,你要创建一个List对象,可以以如下方法:

public ListString list = new ArrayListString();

如此,你添加到list中的元素,就只能是String,如果你添加别的,就会报错,因为它和你创建list时规定的String不一致。

ArrayList部分源码

public class ArrayListE …

泛型的意思就是,这个E可以是任何类,但是当你创建时指定为特定的类,比如说String,那么它就只能传入String。

浅谈如何为Java创建Pair类

使用pair类需要导入什么包啊

下面这段代码怎么无法编译

public class PairTest1{

public static void main(String[] args){

String[] words = {"Mary","had","a","little","lamb"};

PairString mm = ArrayAlg.minmax(words);

System.out.println("min="+mm.getFirst());

System.out.println("max="+mm.getSecond());

}

}

class ArrayAlg{

public static PairStringminmax(String[] a){

if(a==null||a.length==0)return null;

String min = a[0];

String max = a[0];

for(int i=1;ia.length;i++){

if(min.compareTo(a[i])0) min = a[i];

if(max.compareTo(a[i])0) max = a[i];

}

return new PairString(min,max);

}

}

关于java创建pair和JAVA创建一个包的语句的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。