list与数组之间的转换,一口老血在心中。

图片说明
1.注释部分都是sysroleList的输出值,现在想建立一个A[ ]数组,A[ ]存放的是sysroleList某一列的值
2现在有一个7,判断7是否存在于这个数组中。
历史采纳效率可查

qq_23126581
渊渟无迹静涛君 回复phenix2009: 明显就是Java
一年多之前 回复
phenix2009
白色一大坨 你好如果是c++可以加我企鹅号,交流一下
一年多之前 回复

5个回答

例子:


 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"));  //用包含也行,看你自己需求。
}
qq_23126581
渊渟无迹静涛君 回复: 请问解决了吗
一年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 这个例子很好,可以采纳了。
一年多之前 回复
qq_23126581
渊渟无迹静涛君 回复: 对你有帮助就采纳下。谢谢了
一年多之前 回复
qq_41843551
鱼在海上飞 等我下,思路很清晰
一年多之前 回复

老兄你这个描述挺不清楚的,请问你这个list是stl里面的吗?
你现在操作相当于在list里面存一组SysRole的结构体,想要A来保存其中一列的值;
那么之后的这个所谓7,其实就是判断7是否在A数组中了?

phenix2009
白色一大坨 有需要的话加企鹅,四六五六一七七二七,可以详细交流一下,c++的话,代码可以直接写的
一年多之前 回复
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


*/
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问