1.注释部分都是sysroleList的输出值,现在想建立一个A[ ]数组,A[ ]存放的是sysroleList某一列的值
2现在有一个7,判断7是否存在于这个数组中。
历史采纳效率可查
例子:
for循环不就行了。
String []arr=new String[sysroleList.size()];
for(int i=0;i<sysroleList.size();i++)
{
arr[i]=sysroleList.get(i).getRoleName(); //要什么数据就取什么数据,这里取了roleName数据
}
然后循环数组
for(j=0;j<arr.length;j++){
这里面你就可以判断了。
if(arr[j].equals("7")); //用包含也行,看你自己需求。
}
老兄你这个描述挺不清楚的,请问你这个list是stl里面的吗?
你现在操作相当于在list里面存一组SysRole的结构体,想要A来保存其中一列的值;
那么之后的这个所谓7,其实就是判断7是否在A数组中了?
int n = sysroleList.size()
String[] strs = new String[n];
for(int i = 0; i < n; i++){
strs[i] = sysroleList.get(i).getRoleName();
}
判断7是否存在
Arrays.asList(strs).contains("7");
光看楼主这段代码,我就看到两次了,不过是不同的需求。
这次的需求:我认为 您的A[]数组只是一个存放一列值的容器,你只想通过这个容器判断 有一个值(例如“7”),是否存在这个容器里。
以下是对于我理解的您的需求写出来的代码
// 解决方法1
List<String> aList = new ArrayList<>();
for (SysRole sysRole : sysroleList) {
aList.add(sysRole.getRoleName());
}
// 判断7是否存在
String value = "7";
boolean flag = aList.contains(value);
System.err.println(flag ? "存在" : "不存在");
// 解决方法2 重写 SysRole的比较方法 直接通过你这个查询出来的sysroleList 判断
如果理解错了您的需求 请手动加我qq咨询 892042158
public class TestArrayList<T> {
public T[] toArray(List<T> list) {
if (list != null) {
T[] arr = (T[]) Array.newInstance(list.get(0).getClass(), list.size());
return (T[]) list.toArray(arr);
}
return null;
}
public boolean contain(T[] arr, T target, Comparator c) {
if (arr == null || arr.length == 0) {
return false;
}
for (T v : arr) {
if (c.isEqal(v, target)) {
return true;
}
}
return false;
}
public interface Comparator<T> {
public boolean isEqal(T a, T b);
}
public static void main(String[] args) {//测试
TestArrayList<String> util = new TestArrayList<String>();
List<String> valList = new ArrayList<String>();
valList.add("111");
valList.add("222");
System.out.println("list: " + valList);
String[] valArray = util.toArray(valList);
System.out.println("array: " + Arrays.toString(valArray));
//比较
boolean contain = util.contain(valArray, "222", new Comparator<String>() {
@Override
public boolean isEqal(String a, String b) {
return a != null && a.equals(b);
}
});
System.out.println(contain);
}
}
/*结果:
list: [111, 222]
array: [111, 222]
true
*/