鱼在海上飞
2018-09-30 08:13
采纳率: 82.5%
浏览 446

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

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"));  //用包含也行,看你自己需求。
    }
    
    点赞 打赏 评论
  • 白色一大坨 2018-09-30 08:29

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

    点赞 打赏 评论
  • ye11ye 2018-09-30 08:37
    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");
    
    点赞 打赏 评论
  • xmind果果 2018-09-30 08:52

    光看楼主这段代码,我就看到两次了,不过是不同的需求。
    这次的需求:我认为 您的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
    
    
    点赞 打赏 评论
  • _zming 2018-09-30 10:15
     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
    
    
    */
    
    点赞 打赏 评论

相关推荐